Express가 백엔드로 Passport.js를 사용하여 인증을 추가하려고합니다. 가 난 단지 암호로 인증 할 -와에있는 고유 암호/설정/메인라는 이름의 키를Passport JWT Express Unauthorized
내가 를 인증하지만 사용하여 응용 프로그램에 액세스 할 수 없습니다 /를 통해 POST 요청을 전송하여 JWT를 생성 할 수 JWT와 우체부에 무단 작성한 ERROR 401이 표시됩니다. 내 파일 :
passport.js
var JwtStrategy = require('passport-jwt').Strategy;
var ExtractJwt = require('passport-jwt').ExtractJwt;
var LocalStrategy = require('passport-local');
var config = require('./main');
var pass = config.key;
// Setup work and export for the JWT passport strategy
module.exports = function(passport) {
var opts = {};
opts.jwtFromRequest = ExtractJwt.fromAuthHeader();
opts.secretOrKey = config.secret;
// opts.issuer = "accounts.examplesoft.com";
// opts.audience = "yoursite.net";
passport.use(new JwtStrategy(opts, function(jwt_payload, done) {
if (jwt_payload.key === pass) {
return done(null, password);
} else {
return done(null, false);
// or you could create a new account
}
}));
};
내가 무슨 일을하고있는 중이 야
// Initialize passport for use
app.use(passport.initialize());
// Bring in defined Passport Strategy
require('./config/passport')(passport);
var mainConfig = require('./config/main');
var key = mainConfig.key;
var pass = mainConfig.password;
// Authenticate the user and get a JSON Web Token to include in the header of future requests.
router.post('/authenticate', function(req, res) {
var token = jwt.sign({
key:'pass'
}, mainConfig.secret, { expiresIn: '24h' });
res.json({ success: true, token: 'JWT ' + token });
// Enable CORS from client-side
app.use(function(req, res, next) {
res.header("Access-Control-Allow-Origin", "*");
res.header('Access-Control-Allow-Methods', 'PUT, GET, POST, DELETE, OPTIONS');
res.header("Access-Control-Allow-Headers", "Origin, X-Requested-With, Content-Type, Accept, Authorization, Access-Control-Allow-Credentials");
res.header("Access-Control-Allow-Credentials", "true");
next();
});
router.get('/home', passport.authenticate('jwt', { session: false }), function(req, res) {
});
// Set url for API group routes
app.use('/react', router);
app.js? 내 코드를 개선하고 더 나아갈 수 있도록 알려 주시기 바랍니다. 나는 인증 기능에 익숙하지 않으므로 내가 잘못한 것을 설명하십시오.