Почему моя страница не загружается при перезагрузке? - PullRequest
0 голосов
/ 30 января 2020

Я использую Angular для моего сайта. Первоначально, как только страница запущена, проблем нет, и она полностью аутентифицируется. Однако при обновлении страницы он не может больше тянуть текущего пользователя. Похоже, он не вызывает windows аутентификацию. Я добавляю свой код. Любая помощь приветствуется.

intercept(req: HttpRequest<any>, next: HttpHandler):
    Observable<HttpEvent<any>> {

    console.log('AppInterceptorService1111');
    req = req.clone({
        withCredentials: true
      });

    return next.handle(req)
        .pipe(catchError(this.handleError));
}

Локальное хранилище уже реализовано.

this.authenticateCurrentNTLogin().subscribe((data: any) => {
            this.currentUserInfoService.tokenInfo = data.Response;            
            localStorage.setItem('userToken', this.currentUserInfoService.tokenInfo.access_token);
            localStorage.setItem('userRoles', this.currentUserInfoService.tokenInfo.role);        
            this.currentUserInfoService.currentUserTokenExpiration = new Date();
            this.currentUserInfoService.currentUserTokenExpiration.setSeconds(new Date().getSeconds() + parseInt(this.currentUserInfoService.tokenInfo.expires_in));
            localStorage.setItem('myTokenExpiration', this.currentUserInfoService.currentUserTokenExpiration.toLocaleDateString() +
            ' ' + this.currentUserInfoService.currentUserTokenExpiration.toLocaleTimeString());                     
        }, 

Ответы [ 2 ]

1 голос
/ 30 января 2020

После входа в систему с аутентификацией сохраните идентификатор пользователя или идентификатор входа в переменную. И во всем приложении вы можете извлечь эту локальную переменную, чтобы подтвердить, вошел ли идентификатор пользователя в систему или нет даже после обновления. Когда он выйдет из системы, очистите эту переменную. Другими словами, вы можете использовать локальное хранилище в качестве сеанса на стороне клиента. Используйте нижеприведенное, когда пользователь входит в систему и когда аутентифицировано true.

localStorage.setItem("user", user id)

var user = local storage.getItem("user")

На странице, которую вы загружаете, используйте метод .get, и если пользователь не равен NULL, то разрешите ему доступ к текущей странице. Если переменная пользователя равна нулю, то пользователь не вошел в систему и перенаправил его на страницу входа. Когда пользователь выходит из системы:

local storage.removeItem("user")

Надеюсь, это то, о чем вы спрашивали.

0 голосов
/ 30 января 2020

в моих приложениях, когда пользователь проходит аутентификацию, я сохраняю username & user_id в localStorage, так что он имеет мгновенный доступ в любом месте приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...