我正在嘗試使用帶有 passport_jwt 策略的 passport.js 在我的 API 中實作身份驗證。代碼附在下面
const JwtStrategy = require('passport-jwt').Strategy,
ExtractJwt = require('passport-jwt').ExtractJwt;
const opts = {}
const User = require('../models/user_model')
const dotenv = require('dotenv')
module.exports = function(passport) {
opts.jwtFromRequest = ExtractJwt.fromAuthHeaderAsBearerToken();
opts.secretOrKey = process.env.JWT_SECRET;
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
User.findById(jwt_payload._id, function(err, user) {
if (err) {
return done(err, false);
}
if (user) {
return done(null, user);
} else {
return done(null, false);
}
});
}));
}
在這里,我已經通過用戶成功驗證的done功能。對于我的發布路線,我使用了passport.authenticate作為路由中間件,如下所示。
app.use('/api/v1/posts', passport.authenticate('jwt', { session : false }), postRoutes)
現在的問題是如何在創建發布路由時訪問之前在完成功能上發送的用戶?太感謝了。
uj5u.com熱心網友回復:
您可以在postRoutes方法中訪問用戶,如下代碼:
exports.postRoutes = async (req, res) => {
console.log('req.user =====>', req.user);
res.status(200).send({ user: req.user })
};
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/450912.html
標籤:javascript 节点.js mongodb 表示 护照.js
上一篇:如何從JSON檔案中洗掉物件?
