我正在尝试使用passport-jwt身份验证策略对nodejs api进行身份验证,但是它始终会引发401未经授权的错误。我尝试了各种实现,但是passport.authenticate函数似乎不起作用。
使用以下护照版本:
“ passport”:“ ^ 0.4.0”,
“ passport-jwt”:“ ^ 4.0.0”,
请在下面查看我的代码:
尝试了以下选项:
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken()
jwtFromRequest: ExtractJwt.fromHeader('authorization')
jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('Bearer')
jwtFromRequest: ExtractJwt.fromAuthHeaderWithScheme('jwt')
但是没有用。
尝试查看“ passport-jwt 401未经授权”以及其他链接以供参考。
app.js文件:
const express = require('express');
const bodyParser = require('body-parser');
const passport = require('passport');
const cors = require('cors');
const app = express();
const login = require('./routes/login');
app.use(cors());
app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
// app.use(passport.initialize());
app.use('/', login);
app.listen(8000, () => console.log('Server running on http://localhost:8000/'));
路由文件夹中的login.js文件:
const express = require('express');
const router = express.Router();
const passport = require('passport');
const passportref = require('./../controllers/passport');
const loginController = require('./../controllers/loginController');
router.post('/putemailregistration',loginController.putEmailregistration);
router.get('/login', passportref.authenticate,loginController.verifyLogin);
module.exports = router;
Passport.js文件:
const passport = require('passport');
const JWTStrategy = require("passport-jwt").Strategy;
const ExtractJwt = require('passport-jwt').ExtractJwt;
const models = require('./../models');
const opts = {
jwtFromRequest: ExtractJwt.fromAuthHeaderAsBearerToken(),
secretOrKey: 'incredible',
}
阿晨1998
一只斗牛犬
BIG阳
相关分类