Msal- angular всегда открывает всплывающее окно, а я предпочитаю перенаправление - PullRequest
0 голосов
/ 01 апреля 2020

В моем app.module.ts у меня есть эта конфигурация для msal- angular:

imports: [
 BrowserModule.withServerTransition({ appId: 'ng-cli-universal' }),
  HttpClientModule,
  FormsModule,
  RouterModule.forRoot([
    { path: '', component: HomeComponent, pathMatch: 'full' },
    { path: 'ms-profile', component: MsProfileComponent, canActivate: [ MsalGuard ] }
  ]),
  RouterModule,
  MsalModule.forRoot({
    auth: {
      clientId: '7be72f7e-2433-4ef8-b1c7-9b1c91514659',
      authority: 'https://login.microsoftonline.com//d566b150-219d-4312-ba59-3dca2f84a2ac',
      validateAuthority: true,
      redirectUri: 'http://localhost:4200/',
      postLogoutRedirectUri: 'http://localhost:4200/',
      navigateToLoginRequestUrl: true
    }
  }
)
]

Обычно (согласно документации) я должен получить перенаправление на страницу входа для aad (Azure Active Directory), но я всегда получаю всплывающее окно. В этом случае я хочу пройти аутентификацию через редирект.

1 Ответ

0 голосов
/ 01 апреля 2020

Очевидно, это не было проблемой конфигурации, но в том, как я зарегистрировал пользователя:

login() {
    this.authService.loginRedirect();
    // const isIE = window.navigator.userAgent.indexOf('MSIE ') > -1 || window.navigator.userAgent.indexOf('Trident/') > -1;

    // if (isIE) {
    //   this.authService.loginRedirect();
    // } else {
    //   this.authService.loginPopup();
    // }
  }

Так как isIE в моем случае было ложным, он выполнил всплывающий вход.

...