node.js - 身份验证后如何将用户重定向回同一页面?

标签 node.js express passport.js passport-local

我对整个 Node 的事情很陌生,密码非常有趣,并且似乎对于许多身份验证都很有效,所以它看起来很酷。

场景:我想说,只有当用户登录时/profile 才能继续。

这是我制作的路线,

var express = require('express');
var router = express.Router();

其余部分位于名为 router/index.js 的文件中

var passport = require('passport');
var ensureLoggedIn = require('connect-ensure-login').ensureLoggedIn;


router.post('/login', passport.authenticate('login', {
    successRedirect: '/home',
    failureRedirect: '/',
    failureFlash : true  
}));


router.get('/profile', ensureLoggedIn('/'), function(req, res){
    res.json({ user: req.user });
});

所以,根据我的理解和意愿,当我执行 GET/profile 时,它​​必须转到登录页面,然后重定向到 GET/profile。不幸的是,由于登录页面应该返回主页,所以它确实这样做了。

connect-ensure-login 是我期望解决问题的方法,但它没有。如何让它按我的需要工作?

最佳答案

您应该使用successReturnToOrRedirect而不是successRedirect:

router.post('/login', passport.authenticate('login', {
  successReturnToOrRedirect : '/home',
  failureRedirect           : '/',
  failureFlash              : true  
}));

关于node.js - 身份验证后如何将用户重定向回同一页面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37634816/

相关文章:

node.js - 使用模型作为条件在 Waterline 中查询

javascript - NPM 包最后输出信息

javascript - 为什么我的查询结果不会显示在 Express 上的表中?

node.js - Passport 注册本地返回 "Missing Credentials"

javascript - Gulp 不创建文件夹?

javascript - 如何将创建的联系人分配给 Mongoose 中的当前用户?

javascript - 如何在 Express/Node.js 中反序列化 JSON 数据

做 Passport nodejs时的javascript语法

AngularJS - 访问 Node/表达 session 信息

javascript - 如何在reactjs中使用条件语句渲染组件?