Javascript 有没有办法提高MSAL浏览器js登录的性能?

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

我有一个单页JavaScript(TypeScript)应用程序作为应用程序服务托管在Azure上,我正在使用带有Azure AAD和@MSAL browser npm包的隐式流MSAL身份验证来验证我的用户。我已将MSAL实例配置为使用登录重定向。登录正常,但响应非常慢:我的应用程序需要>7秒才能收到响应。我已经将我的MSAL配置包含在下面的代码片段中

在重定向发生之前,HandlerRedirectPromise承诺会被多次触发,并有空响应。用户登录后,会立即重定向到我的应用程序中的正确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>
      }
    })
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请求

响应