Usando o Passport para autenticação de pontos de extremidade da API
Depois de umacasal tutoriais ao adicionar autenticação usando jsonwebtoken, passport e passport-local, fiquei preso ao integrá-lo aomeu projeto. Quero que todas as solicitações para qualquer um dos pontos de extremidade da API exijam autenticação e também as solicitações para o front end que tocam na API exigem autenticação.
O que está acontecendo agora é que posso fazer com que um usuário efetue login e registre-se, mas, uma vez logado, ele ainda não poderá visitar uma página que requer autenticação. O usuário recebe um erro 401. É como se o token não estivesse sendo transmitido corretamente na solicitação.
Eu tentei adicionar um 'interceptor de autenticação' também
myApp.factory('authInterceptor', function ($rootScope, $q, $window) {
return {
request: function (config) {
config.headers = config.headers || {};
if ($window.sessionStorage.token) {
config.headers.Authorization = 'Bearer ' + $window.sessionStorage.token;
}
return config;
},
response: function (response) {
if (response.status === 401) {
// handle the case where the user is not authenticated
}
return response || $q.when(response);
}
};
});
myApp.config(function ($httpProvider) {
$httpProvider.interceptors.push('authInterceptor');
});
Mas isso também não pareceu funcionar.
O que estou esquecendo ou perdendo?
Depois de inserir creds e clicar em logon, recebo este erro no console do chrome
GET http://localhost:3030/members/ 401 (Unauthorized)
Mas meus links de navegação aparecemcomo eles deveriam depois de me autenticar com sucesso.
Eu também recebo esse erro no meu terminal onde estou executando o Node
UnauthorizedError: No authorization token was found
at middlware (/ncps-mms/node_modules/express-jwt/lib/index.js)
...
EDITAR:Tem muito a ver comestá linha das rotas do meu servidor quando eu injetar meuauth
objeto. Basicamente, acho que meu token de autenticação não está sendo enviado com o meuGET
solicitação. Mas pensei que isso é o que acontece quando passo meu objeto de autenticação na solicitação GET.
Adicionada imagem da solicitação GET.
Acredito que já resolvi meu problema de autenticação, mas o problema do meu estado de exibição de membros continua falhando após a autenticação. Eu tenhoempurrou minhas últimas alterações para o github e se você puxar o mais recente e executar, verá que é possível autenticar, mas clicando noVisão O link falha ao carregar a visualização.