J'ai intégré passport-jwt à des fins d'authentification. Il fonctionne comme le charme mais chaque fois que le mec du Frontend l'utilise à partir de l'interface angulaire 2, il donne le 401 non autorisé. J'ai essayé beaucoup, mais ne pas avoir la moindre idée, ce doit être une erreur idiote cependant.Problème de passeport-jwt: le jeton JWT fonctionne avec un facteur mais ne fonctionne pas avec l'interface utilisateur. Api call
mon dossier de stratégie de passeport est aussi
let JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
//let fromHeader = require('passport-jwt').fromHeader
// load up the user model
const User = require('../components/user/model');
const database = require('./database'); // get db config file
const config = require('./config'); // get db config file
module.exports = function(passport) {
//var passportStrategy = function(passport){
let opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
//opts.jwtFromRequest = ExtractJwt.fromAuthHeaderWithScheme("JWT");
console.log("opts.jwtFromRequest==",opts.jwtFromRequest);
opts.secretOrKey = config.secret;//config.secret;
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
//console.log("opt==",JSON.stringify(opt));
//console.log("jwt_payload===",jwt_payload);
User.findOne({_id: jwt_payload._doc._id}, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
done(null, user);
} else {
done(null, false);
}
});
}));
};
ma route est aussi
app.get("/api/user/getAll",
passport.authenticate('jwt',{session:false}),
userController.fetchUsers
);
Et append d'en-tête de frontend est la suivante:
logoutUser(token) {
//const userData = JSON.stringify(userInfo);
var headers = new Headers();
headers.append('Content-Type', 'application/json');
headers.append('Authorization', token); //e.g.token = JWT dasddddasdsda
//headers.append('Authentication', token);
console.log(headers)
return this.http.post('http://localhost:9000/api/user/logout', { headers: headers })
.map((response: Response) =〉 {
return response.json()
})
.catch(this.errorHandler);
}
Ce serait vraiment génial si quelqu'un peut m'aider à identifier l'erreur.
Merci @srisaiswaroop Son travail parfait. :) –