MsalRedirectComponent вызывает хранилище после входа в систему

«Я использую Msal Login с действиями, эффектами и редукторами, созданными NGRX, и кнопкой входа в систему, вызывающей диспетчер.

Я также хочу использовать MsalRedirectComponent в начальной загрузке, чтобы он автоматически перенаправлялся на страницу входа в Microsoft, но мы не вызываем через диспетчер, поэтому токены сохраняются в локальном хранилище.

      version
 "@azure/msal-angular": "^2.5.8",
    "@azure/msal-browser": "^2.37.1",
    "@ngrx/effects": "^14.0.0",
    "@ngrx/entity": "^14.0.0",
    "@ngrx/store": "^14.0.0",
    "rxjs": "^7.4.0",

App Module
  bootstrap: [
    AppComponent,  MsalRedirectComponent
  ]

created store and in login button calling dispatcher
 login() {
    this.store.dispatch(login());
  }
actions 
export const login = createAction('[Auth] Login');
export const loginSuccess = createAction('[Auth] Login Success', props<{ token: string }>());
export const loginFailure = createAction('[Auth] Login Failure', props<{ error: any }>());

effetcs
 login$ = createEffect(() =>
    this.actions$.pipe(
      ofType(AuthActions.login),
      exhaustMap(() =>
        this.authService.login().pipe(
          map(token => AuthActions.loginSuccess({ token })),
          catchError(error => of(AuthActions.loginFailure({ error })))
        )
      )
    )
  );

reducer
  initialState,
  on(AuthActions.login, state => ({ ...state, loading: true })),
  on(AuthActions.loginSuccess, (state, { token }) => ({ ...state, token, loading: false })),
  on(AuthActions.loginFailure, (state, { error }) => ({ ...state, error, loading: false })),

Как включить MsalRedirectComponent

`

0 ответов

Другие вопросы по тегам