Я пытаюсь реализовать простую аутентификацию пользователя, и в настоящее время я работаю над предотвращением выхода пользователя из системы при обновлении страницы.Для этого я использую отсрочку.В первый раз, когда приложение открывается, отложите возврат AuthActions.Logout (), что правильно, поскольку нет аутентификации, проблема в обновлении, потому что, хотя токен установлен в хранилище chrome и все действия отправляются эффект не вызывается снова .
@Effect()
init$ = defer((): Observable<AuthActions.SigninUser | AuthActions.Logout> => {
const token = this.authService.getToken();
console.log('in def')
return (token)
? of(new AuthActions.SigninUser())
: of(new AuthActions.Logout())
});
тогда он идет сюда ->
@Effect()
login$ = this.actions$
.pipe(
ofType(AuthActions.SIGNIN_USER),
switchMap(() => {
console.log('signin user')
return [new UserDetailsActions.GetUserDetails];
}),
)
, если установлен токен (то есть), он должен быть запущен, но он запускается только один раз, когда пользователь входит ->
@Effect()
getUserById = this.actions$
.pipe(
ofType(UserDetailsActions.GET_USER_DETAILS),
mergeMap(() => {
let token = this.authService.getTokenUsername();
return this.http.get(`${AppProperties.API_URL}user/${token}`)
}),
concatMap((userDetails: UserDetails) => {
sessionStorage.setItem('currentUserId', userDetails.id.toString());
return [new UserDetailsActions.SetUserDetails(userDetails)]
})
);
Буду признателен за любую помощь