passport-jwt,不抛错误,但不认证。甚至不会console.log
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了passport-jwt,不抛错误,但不认证。甚至不会console.log相关的知识,希望对你有一定的参考价值。
我正在尝试使用passport-jwt,express等进行身份验证。我目前没有通过身份验证,但最令人不安的是,我似乎无法在函数内部安装console.log ......没有任何反应。
这是完整的passport.js
const JwtStrategy = require('passport-jwt').Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const User = require('../models/user');
const config = require('../config/database');
module.exports = function(passport) {
let opts = {};
opts.jwtFromRequest = ExtractJwt.fromHeader();
opts.secretOrKey = config.secret;
console.log(opts); // THIS SHOW PRIORE TO THE EXPRESS LISTEN MSG!
passport.use(new JwtStrategy(opts, (jwt_payload, done) => {
console.log(jwt_payload); // THIS DOESNT EVER SHOW!
User.getUserById(jwt_payload._id, (err, user) => {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
// or create a new account
}
});
}));
}
users.js
const express = require('express');
const router = express.Router();
const passport = require('passport');
const jwt = require('jsonwebtoken');
const config = require('../config/database');
const User = require('../models/user');
...code removed for brevity...
router.get('/profile', passport.authenticate('jwt', {session:false}), (req,res,next) => {
res.json({user: req.user});
});
module.exports = router;
关于如何“看到”我的有效载荷的任何想法,以便我能找到最新情况?
我使用邮递员点击'http://localhost:3000/users/profile'传递标题“身份验证”和令牌“JWT my-token ...”
THx - 我意识到这是一个奇怪的请求...我正在关注的教程,表明我应该能够看到有效载荷,即使我没有经过身份验证...所以我有点卡住,不知道在哪里转。
UGH - 这是我第二次在我问之后继续插件时,只是想找到一个解决方案。我正在使用的版本比示例更新,而ExtractJwt.fromHeader()应该是.fromAuthHeaderWithScheme(“jwt”)。令人沮丧的是它没有错误,并且没有足够的进度来记录,但是 - 现在我得到我的控制台日志,并且可以看到我的有效负载...我希望这有助于其他人。 (我对js libs的速度和变化感到沮丧,这会破坏向后兼容性,并且没有清楚地记录路径,我理解为什么会发生这种情况,但它会使学习和故障排除非常令人沮丧)
以上是关于passport-jwt,不抛错误,但不认证。甚至不会console.log的主要内容,如果未能解决你的问题,请参考以下文章
NodeJs Express passport-jwt 从令牌中获取错误的用户