如何解决MSAL.js 无限循环,不调用微软登录页面
我真的很努力地让 MSAL 与 Vanilla JavaScript 一起工作,但它就是行不通。
每当我尝试单击登录页面上的登录按钮时,登录页面都会刷新而没有任何反应,Microsoft 登录页面不会显示。
也没有错误记录到控制台。
在单击“登录”按钮 200 次或更多次并多次刷新页面后,Microsoft 登录页面会显示出来,然后就可以正常工作了。
脚本参考
<script type="text/javascript" src="https://alcdn.msauth.net/lib/1.4.4/js/msal.js" integrity="sha384-fTmwCjhRA6zShZq8Ow5ZkbWwmgp8En46qW6yWpNEkp37MkV50I/V2wjzlEkQ8eWD" crossorigin="anonymous"></script>
JS MSAL 代码
//Config
const msalConfig = {
auth: {
clientId: "{Client ID}",authority: "{Authority}",redirectUri: "{Base App URL}/Dashboard",//This URL is registered in Microsoft AAD
navigateToLoginRequestUrl: false
},cache: {
cacheLocation: "localStorage",storeAuthStateInCookie: true,}
};
//Login Request Object
const loginRequest = {
scopes: ["User.Read"],prompt: 'login',};
//Initialize MSAL
var myMSALObj = new Msal.UserAgentApplication(msalConfig);
myMSALObj.handleRedirectCallback(authRedirectCallBack);
//Handle Callback
function authRedirectCallBack(error,response) {
if (error) {
console.log(error);
} else {
if (response.tokenType === "id_token") {
console.log("id_token acquired at: " + new Date().toString());
if (myMSALObj.getAccount()) {
showWelcomeMessage(myMSALObj.getAccount());
}
} else if (response.tokenType === "access_token") {
console.log("access_token acquired at: " + new Date().toString());
accessToken = response.accessToken;
try {
callMSGraph(graphConfig.graphMailEndpoint,accessToken,updateUI);
} catch (err) {
console.log(err)
}
} else {
console.log("token type is:" + response.tokenType);
}
}
}
$(document).on("click","#btn-testing-msal",function () {
myMSALObj.loginRedirect(loginRequest);
});
任何帮助将不胜感激,提前致谢
解决方法
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。