我有一个Aurelia应用程序,使用Msal JavaScript库对Azure B2C进行身份验证 它托管在Azure应用服务上,它在Chrome中工作正常,但在Edge和Firefox中,我会在应用启动时重定向回Azure B2C登录屏幕。
这是我的主要内容:
aurelia.start().then((a) => {
let auth: Auth = a
.container
.get(Auth);
setTimeout(() => {
auth
.isAuthenticated()
.then(() => {
a.setRoot();
return;
})
.catch((e) => {
auth.login();
});
}, 2000);
这是isAuthenticated方法:
isAuthenticated() {
return new Promise((resolve, reject) => {
let cachedUser = this
.clientApplication
.getUser();
if (cachedUser == null) {
this.authenticated = false;
return reject();
}
let token = this._getTokentInternal();
if (token) {
this.authenticated = true;
return resolve();
} else {
return reject();
}
});
}
当我使用Aurelia cli在Localhost上运行时,这三种浏览器都能正常工作,但是当我发布到azure时,即使azure登录成功,Edge和Firefox也会继续从isAuthenticated方法获得拒绝的promise响应重定向登录。
还有其他人遇到过这个问题吗?
任何人都可以指出我正确的方向来解决这个问题吗?
答案 0 :(得分:0)
似乎我的登录方法清除了window.location.hash,我删除了该行,它现在似乎正在工作