Аутентификация с использованием паспорта 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');
});