Express Router() 和 Passport Authenticate()

金笼

我正在使用 Express(v4.15)、Passport(v0.4.0) 和 Passport-JWT(v3.0.1)。我正在使用 Node 版本 8.9.0。

我似乎无法让 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);

这是我在邮递员中得到的: 邮递员中的404错误

金笼

我发现了我的问题。

router.get('/user', function (req, res) {

本来应该是:

router.get('/', function (req, res) {

它导致最终路由是“/user/user”

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用req.params作为passport.js中passport.authenticate()的输入(使用Express 4.0)

如何在 express.Router() 上检查 Passport isAuthenticated

如何注销并通过Passport和Express-session清除会话?

使用Express和Passport的Google令牌认证不起作用

使用Express和Passport JS重定向Node中的路由

使用 Passport 和 Express JS 登录后如何保存会话?

如何诊断passport.authenticate?

如何获取成功信息和错误消息而不是passport.authenticate?

Express Router渲染和公共静态文件

nodejs和express,加载了router文件,但是router不工作

React-Router 和 Express-Router 冲突

Express.js | express.Router 和路由参数输入

NodeJS,Passport和本地Passport

了解passport.authenticate('local')语法位

使用NodeJS,Express-Session和Passport的身份验证失败

Express 4.0和Passport-重定向到Facebook不起作用

无法使用Passport.js和Express 4访问req.user

sockiet.ion Passport.js,express.js和身份验证标头

Passport.js 和 Express Session - req.user 未定义导致 .isAuthenticted() 返回 false

Express.js 和passport.js,但无法获取/login

使用passport.js和express.js进行单元测试登录

使用 Facebook 登录、Passport、Express、React 和 Node 时没有设置用户 cookie

express.Router和app.get之间的区别?

使用 Express Router 和 MongoDG 访问架构内的架构

Passport.authenticate 和注销方法和闪烁在重定向后路由到新页面之前不起作用

Passport LocalStrategy从未致电Express

Node.js和PassportJs:如果身份验证失败,则不会在passport.authenticate之后重定向中间件

Socket.IO + Express框架| 从Express Controller和Router发射/发射

未通过此authenticate()回调调用Passport serializeUser()