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

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


person vanquishers    schedule 02.06.2016    source источник


Ответы (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');
    }); 
person Katana24    schedule 03.06.2016
comment
stackoverflow.com/questions/38160209 / вы можете помочь в этом - person vanquishers; 02.07.2016