Аутентификация с использованием паспорта JWT

Я новичок в аутентификации на основе токенов. Я хочу ограничить пользователя определенными страницами на моем сайте (проверьте его аутентификацию) и увидел, что jwt - лучший способ реализовать это, и следовал инструкциям здесь: https://devdactic.com/restful-api-user-authentication-2/, но как я могу запретить пользователю доступ к страницам (попросить его войти)? Здесь автор говорит, что он использовал AuthInterceptor который проверяет часть аутентификации. Но я запутался с аутентификационным перехватчиком. Может ли кто-нибудь объяснить нам, как я могу ограничить пользователя (например, если часть кода на стороне сервера или на стороне клиента, если на стороне сервера, я могу иметь ссылку на код в node.js)?

1 ответ

Я прикрепляю JWT к каждому запросу данных с моего сервера. Код выглядит так:

    return {
      request: function(config) {
        var jwt;
        if(isApiRequest(config.url)) {
          config.url = baseUrl + '/api/v1/' + config.url;
          jwt = store.get(JWT);
          if(jwt)
            config.headers.Authorization = "Bearer "+jwt;
        }
        return config;
      }
    };

Однако, что вы хотите сделать, это определить, есть ли у пользователя JWT (и при этом действительный - который будет проверен сервером), и, если это так, он может получить доступ к определенным страницам.

Я бы сказал, что это можно сделать путем мониторинга $stateChange событие:

$rootScope.$on('$stateChangeStart', function(evt, toState, toParams, fromState, fromParams) {
     var jwt = store.get('JWT');          
     if(!jwt)
       $state.go('go-back-to-login-view');
    }); 
Другие вопросы по тегам