Javascript 有没有办法提高MSAL浏览器js登录的性能?
我有一个单页JavaScript(TypeScript)应用程序作为应用程序服务托管在Azure上,我正在使用带有Azure AAD和@MSAL browser npm包的隐式流MSAL身份验证来验证我的用户。我已将MSAL实例配置为使用登录重定向。登录正常,但响应非常慢:我的应用程序需要>7秒才能收到响应。我已经将我的MSAL配置包含在下面的代码片段中 在重定向发生之前,HandlerRedirectPromise承诺会被多次触发,并有空响应。用户登录后,会立即重定向到我的应用程序中的正确URL,但这个承诺需要很长时间才能解决。我的用户感到沮丧,因为他们认为什么都没有发生 有没有一种方法可以提高登录的性能,而不需要使用弹出窗口?我试着使用MSAL的弹出式版本,但速度同样慢。我想我的登录是无缝的。转到站点,立即重定向到MS登录,重定向回我的站点,立即收到登录成功,最后在成功验证后加载应用程序Javascript 有没有办法提高MSAL浏览器js登录的性能?,javascript,azure-web-app-service,msal.js,Javascript,Azure Web App Service,Msal.js,我有一个单页JavaScript(TypeScript)应用程序作为应用程序服务托管在Azure上,我正在使用带有Azure AAD和@MSAL browser npm包的隐式流MSAL身份验证来验证我的用户。我已将MSAL实例配置为使用登录重定向。登录正常,但响应非常慢:我的应用程序需要>7秒才能收到响应。我已经将我的MSAL配置包含在下面的代码片段中 在重定向发生之前,HandlerRedirectPromise承诺会被多次触发,并有空响应。用户登录后,会立即重定向到我的应用程序中的正确UR
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>
}
})
const cacheLocation:'localStorage'='localStorage';
常量msalConfig:Msal.Configuration={
认证:{
clientId:environment.clientId,
授权:`https://login.microsoftonline.com/${environment.tenant}/`,
知识权限:[`https://login.microsoftonline.com/${environment.tenant}/`],
//验证权限:正确,
redirectUri:environment.redirectUri,
navigateToLoginRequestUrl:错误,
postLogoutRedirectUri:environment.postLogoutRedirectUri
},
缓存:{
缓存位置,
storeAuthStateInCookie:错误
},
系统:{
loggerOptions:{
loggerCallback:(级别:Msal.LogLevel,消息:string,containsPI:boolean):void=>{
console.log(消息)
},
Piilogginabled:没错,
日志级别:Msal.logLevel.Verbose
}
}
};
this.msalInstance=新的Msal.PublicClientApplication(msalConfig);
这是我的名字
.handleRedirectPromise()
.then((tokenResponse)=>{console.log('登录回调')
if(令牌响应!==null){
}
})
您可以使用登录您的MS帐户
使用ROPC
,您可以发送http请求以获取access\u token
和id\u token
但是,Microsoft不推荐此方法,其他身份验证方法将具有弹出窗口
Http请求
响应