如何解决有没有办法提高MSAL-browser js登录的性能?
我有一个作为应用服务托管在 Azure 上的单页 JavaScript (TypeScript) 应用程序,并且我正在使用带有 @msal-browser npm 包的 Azure AAD 的隐式流 MSAL 身份验证来验证我的用户。我已将我的 MSAL 实例配置为使用登录重定向。登录有效,但响应非常慢:我的应用程序需要 7 秒以上才能收到响应。我已将我的 MSAL 配置作为代码片段包含在下面。
在重定向发生之前,handleRedirectPromise 承诺被多次触发并返回空响应。用户登录后,他们会立即被重定向到我的应用程序内的正确 URL,但承诺需要很长时间才能解决。我的用户感到沮丧,因为他们认为什么都没有发生。
有没有一种不涉及使用弹出窗口的方式来提高登录的性能?我尝试使用 MSAL 的弹出版本,但它同样慢。我希望我的登录是无缝的。转到站点,立即重定向到 MS 登录,重定向回我的站点,立即收到登录成功,最后通过身份验证成功加载应用程序。
const cacheLocation: 'localStorage' = 'localStorage';
const msalConfig: Msal.Configuration = {
auth: {
clientId: environment.clientId,authority: `https://login.microsoftonline.com/${environment.tenant}/`,knownAuthorities: [`https://login.microsoftonline.com/${environment.tenant}/`],//validateAuthority: true,redirectUri: environment.redirectUri,navigateToLoginRequestUrl: false,postLogoutRedirectUri: environment.postLogoutRedirectUri
},cache: {
cacheLocation,storeAuthStateInCookie: false
},system: {
loggerOptions: {
loggerCallback: (level: Msal.LogLevel,message: string,containsPii: boolean): void => {
console.log(message)
},piiLoggingEnabled: true,logLevel: Msal.LogLevel.Verbose
}
}
};
this.msalInstance = new Msal.PublicClientApplication(msalConfig);
this.msalInstance
.handleRedirectPromise()
.then((tokenResponse) => { console.log('log in callback')
if (tokenResponse !== null) {
<DO THINGS HERE>
}
})
解决方法
您可以使用 ROPC flow 登录您的 MS 帐户。
使用$0
,可以发送http请求获取ROPC
和access_token
。
不过微软并不推荐这种方式,其他认证方式都会有弹窗。
Http 请求
回复
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。