Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Passport.js:验证后如何访问用户对象?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_404_4@
我使用Passport.js登录用户名和密码的用户。我基本上使用Passport网站的示例代码。以下是我的代码的相关部分(我认为):

app.use(passport.initialize());
app.use(passport.session());

passport.serializeUser(function(user,donE) {
    done(null,user);
});

passport.deserializeUser(function(obj,obj);
});

passport.use(new LocalStrategy(function(username,password,donE) {
    User.findOne({ username: username },function(err,user) {
        if (err) {
            return done(err);
        }
        if (!user) {
            return done(null,false,{ message: 'Incorrect username.' });
        }
        if (!user.validpassword(password)) {
            return done(null,{ message: 'Incorrect password.' });
        }
        return done(null,user);
        });
    }
));

app.post('/login',passport.authenticate('local',{ failureRedirect: '/login/fail',failureFlash: false }),function(req,res) {
        // successful login
        //console.log("Login successful.");
        // I CAN ACCESS req.user here
});

这似乎正确登录。但是,我想要在代码的其他部分访问登录用户的信息,例如:

app.get('/test',res){
    // How can I get the user's login info here?
    console.log(req.user);  // <------ this outputs undefined
});

我已经检查过其他问题,但我不知道我在这里做错了什么。谢谢!

@H_404_4@

解决方法

注册护照中间件之前,您需要确保注册填充要求的 middleware

例如以下使用express cookieSession middleware

app.configure(function() {

  // some code ...

  app.use(express.cookieParser());
  app.use(express.bodyParser());
  app.use(express.cookieSession()); // Express cookie session middleware 
  app.use(passport.initialize());   // passport initialize middleware
  app.use(passport.session());      // passport session middleware 

  // more code ...

});
@H_404_4@ @H_404_4@
@H_404_4@
@H_404_4@
本图文内容来源于网友网络收集整理提供,作为学习参使用,版权属于原作者。

猜你在找的Node.js相关文章

一、概述简介node.js实际上是采用google的chrome浏览器V8引擎,由C++编写的javascript运行环境,由于封装和底层的处理赋予了更大的能力,使得js可以像java、PHP等一样运行于服务器端。它可以像浏览器引擎那样解析js代码,却没有浏览器端各种安全性的限制,还提供许多系统级别的API: 1、文件的读写 2、进行的管理 3、网络通信Node.js与浏览器执行环境的异同点相
一、app.use与http.createServer….二、app.use路由与app.get、app.post#等等的区别针对不同的请求,Express提供了use方法的一些别名(get、post之类),用express时才能用get、post吗?三、express三大核心概念:路由、中间件、模板引擎四、要选择哪种模板比较好?
代码在 ==》E:nodes实战myservetestserve 1 express搭建后端请求路由,前端进行访问对应的接口 1) 创建项目目录 express 项目名 -e 然后按照提示就可以
1. fs读取文件 const fs=require(&#39;fs&#39;);//引入文件读取模块 fs.readFile(&#39;./README.md&#39;,(err,data)=&gt
后端代码 在后端的文件 routes文件夹下的connect.js文件中 // 引入mysql const mysql = require(&#39;mysql&#39;); // 创建连接对象 co
path 中方法使用及 __dirname 和 __filename 一、__dirname 和 __filename 1. 概念 1. __dirname 可以用来动态获取当前文件所属目录的绝对路径
express包含的内容:1)主体2)cookie,session3)数据4)模板引擎5)路由需要用到的插件:express---web框架express-static------解析静态资源cookie-parser-------解析cookie,服务端读取客户端设置的cookiecookie-session------解析sessionbody-pa...
Node.js学习课程的安排Node.js最大的特点就是:非阻塞IO和事件驱动、模块化驱动  Node的基础概念1)node命令的基本用法(1)进入REPL环境:node,进入REPL环境  .exit     在REPL环境,可以测试Node的一些代码和模块进入window的PowersHell环境:cmd  执行:powersHell     通过命令行执行...

node.js – Passport.js:验证后如何访问用户对象?

微信公众号搜 "程序精选"关注

大佬总结

以上是大佬教程为你收集整理的node.js – Passport.js:验证后如何访问用户对象?全部内容,希望文章能够帮你解决node.js – Passport.js:验证后如何访问用户对象?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。