0
나는 Express (v4.15), Passport (v0.4.0) 및 Passport-JWT (v3.0.1)을 가지고 놀고있다. 노드 버전 8.9.0을 사용하고 있습니다.Express Router() 및 Passport Authenticate()
Express.Router()와 passport.authenticate() 호출이 제대로 작동하지 않는 것 같습니다. 여기서 내가 뭘 잘못하고 있니?
./routes/user.js :
var express = require('express');
var router = express.Router();
router.get('/user', function (req, res) {
res.send('Secured Page: user account settings');
});
module.exports = router;
./app.js :
var app = require('express')();
var passport = require('passport');
var passportJWT = require('passport-jwt');
var jwt = require('jwt-simple');
var Strategy = passportJWT.Strategy;
var ExtractJWT = passportJWT.ExtractJwt;
var userDB = require('./userdb');
var config = require('./config/config');
var params = {
secretOrKeyProvider: function (req, rawJWT, done) { done(null, config.jwtSecret); },
jwtFromRequest: ExtractJWT.fromAuthHeaderAsBearerToken()
};
var user = require('./routes/user');
// ...
var strategy = new Strategy(params, function jwtVerify (payload, done) {
console.log('payload recieved', payload);
// usually this would be a database call
var user = userDB[_.findIndex(userDB, {id: payload.id})];
if (user) {
done(null, user);
} else {
done(new Error('User not found'), false);
}
});
passport.use(strategy);
//...
app.use('/user', passport.authenticate('jwt', {session: false}), user);