[英]No logs after Passport.js authenticate middleware
我正在尝试调试失败的JWT身份验证设置,该设置始终返回401。
我的护照设置( middleware/auth.js
)
import passport from 'passport'
import { Strategy as JwtStrategy, ExtractJwt } from 'passport-jwt'
module.exports = function() {
var options = {};
options.jwtFromRequest = ExtractJwt.fromAuthHeader()
options.secretOrKey = 'superdupersecret'
var strategy = new JwtStrategy(options, function(payload, done) {
console.log('this is not printing') <---------------
var user = payload.sub || null;
if (user) {
return done(null, { id: user._id });
} else {
return done(new Error("User not found"), null);
}
});
passport.use(strategy);
return {
initialize: () => {
console.log('this only prints on boot'); <---------------
return passport.initialize();
},
authenticate: () => {
console.log('this too') <---------------
return passport.authenticate("jwt", {session: false});
}
};
};
我的server.js文件用于初始化护照:
import express from 'express'
(...)
var auth = require("./middleware/auth.js")();
// Instantiate app
const app = express();
// Initialize passport for auth use
app.use(auth.initialize())
我的受保护路线始终返回401:
import express from 'express'
var auth = require("../middleware/auth.js")();
const userRouter = express.Router()
userRouter.get('/dashboard', auth.authenticate(), (req, res) => {
res.send('It worked! User id is: ' + req.user + '.')
})
export default userRouter
我尝试在实际的password.js模块本身以及passport-jwt中添加打印语句,但没有成功。
在受保护路由上的身份验证中间件之后,没有任何日志记录。
在过去的3天里,我已经尝试了大量的设置排列。 任何帮助将不胜感激
好的,我遵循了您提到的教程,它似乎可以正常工作。 这里有一些注意事项(一些可能很明显,没有冒犯性)。
服务器返回状态200。我进行了修改,因此它返回了用户。
app.get(“ / user”,auth.authenticate(),function(req,res){res.json({user:req.user});});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.