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
`