什么可能导致 deserializeUser() 未被调用?

2024-06-09

我将 Passport 与 Node.js 一起使用,但遇到了一个奇怪的问题, 这passport.deserializeUser(function..永远不会被叫到。

奇怪的是serializeUser(function..被称为就好了..

然而奇怪的是,几天前它还运行得很好,但现在不是了。 https://i.stack.imgur.com/4fcfp.png我想不出我在系统中所做的任何更改会导致这种情况。

var express = require('express');
var app = express();

var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

app.configure(function(){
    app.use(passport.initialize());
    app.use(passport.session());
    app.use(express.static('public'));
    app.use(express.cookieParser());
    app.use(express.bodyParser());
    app.use(express.session({ secret: 'keyboard cat' }));
    app.use(app.router);
});

passport.use(new LocalStrategy(function(username, password, done){
    return done(null, 'Always Authenticated User');
}));

passport.serializeUser(function(user, done) {
    console.log(' serialize OK! ');
    done(null, user);
});
passport.deserializeUser(function(id, done) {
    console.log('deserialize Never gets called');
    done(null,id);
});

app.post('/login'
    ,passport.authenticate('local'
        ,{ successRedirect: '/success'
        ,failureRedirect: '/failure'
        ,failureFlash: false
}   )   );

app.get('/', function(req, res){
    // very simple form
    res.send("<form id='LoginLocal' action='/login' method='post'><fieldset><legend>Login with username/password</legend><label for='username'> Username: <input type='text' name='username' placeholder='username'><label for='password'> Password: <input type='password' name='password' placeholder='password'><input type='submit' value='Login'></fieldset></form>");
});

app.listen(80);

移动app.use(passport.… after the app.use(express.…解决了它。

app.configure(function(){
    app.use(express.static('public'));
    app.use(express.cookieParser());
    app.use(express.bodyParser());
    app.use(express.session({ secret: 'keyboard cat' }));
    app.use(passport.initialize());
    app.use(passport.session());
    app.use(app.router);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

什么可能导致 deserializeUser() 未被调用? 的相关文章

  • 使用 Angular 和 Express 登录用户的正确方法是什么?

    我正在构建一个简单的网站 我想让用户使用 Facebook 登录 然后根据他们是否登录显示包含自定义项目的页面 即 如果未登录 它会显示一些信息 但如果登录 它会根据用户信息显示其他信息 我正在使用 Passportjs Facebook
  • NestJS 的 Passport 本地策略“验证”方法从未被调用

    我正在尝试实施护照本地策略 但验证方法不起作用 当我做 UseGuards AuthGuard local 它会自动抛出未经授权的异常 而无需通过我编写的 validate 方法 我不知道我做错了什么 因为文档也做了同样的事情 这是我的本地
  • Nest.js 中使用 @nestjs/passport 进行可选身份验证

    我有一条需要经过身份验证和未经身份验证的用户使用的路线 我用 UseGuards AuthGuard jwt 启用身份验证 但它会阻止任何未经身份验证的用户访问该路由 正常 如何允许未经身份验证的用户也访问该路由 似乎没有我可以传递的选项A
  • NestJS |护照:类型错误:无法读取未定义的属性(读取“登录”)

    情况 在nestjs和graphql中开发api 在一台笔记本电脑上工作 一切正常 然后在其他笔记本电脑上克隆我的存储库 安装依赖项 创建一个新的本地数据库 应用程序正在构建 没有错误 当在浏览器中关注 localhost 4000 打开
  • Passport.js 支持ajax 吗?

    我想用passport js进行ajax登录 我有设置 Passport js 的常用代码 route app post api auth login passport authenticate local login successRed
  • Passport JS 中的 req.isAuthenticated() 是如何实现的? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 在passportJS文档中 我认为passportisAuthenticated功能没有很好地记录 How is req isAut
  • Facebook-passport 与 JWT

    我一直在使用Passport在我的服务器上进行用户身份验证 当用户在本地登录 使用用户名和密码 时 服务器会向他们发送JWT它存储在 localstorage 中 并在每次需要用户身份验证的 api 调用时发送回服务器 现在我想支持Face
  • Passport.js + Express.js 在身份验证后将用户转发到原始目的地

    我有一个应用程序 服务器上是 Node Express Passport 客户端上是 jQuery Backbone js 客户端在 URL 中使用哈希标签 但对于某些功能来说 用户登录非常重要 我希望可以通过 URL 访问该应用程序 例如
  • 如何处理异步。护照和猫鼬的 findOrCreate 方法

    身份验证模块 Passport 需要 FindOrCreate 方法才能进行登录 我使用 mongoose 来保存我的用户 其架构如下 var UserSchema new Schema firstname String lastname
  • 护照验证不重定向

    我正在编写一个本地注册策略 发现它不起作用 所以我退后一步 尝试对我的空集合进行身份验证 每次我提交表单都会花费大约 30 40 秒的时间 直到导致超时 我确保调用了 Passport authenticate 但似乎它没有执行任何重定向
  • 护照活动目录node.js

    我已经成功地将六个护照策略 facebook twitter linkedin instagram tumblr google youtube 与 oauth1 和 oauth2 令牌交换帐户信息组装到一个独立的身份验证服务器中 该服务器在
  • 使用 NodeJS 和 Restify 重定向客户端

    我正在使用 NodeJS Restify 和 PassportJS 为 SPA 构建 REST 后端以进行身份 验证 除了最后一步之外 一切正常 即将客户端从后端 login facebook callback 重定向到应用程序的主页 我在
  • 类型错误:req.logIn 不是函数 - Passport JS

    我很确定这不是一个错误 因为谷歌搜索没有发现任何结果 我正在使用 Passport JS 和本地策略 在我的登录路线上 我使用自定义回调 并在确定用户存在后调用 req login 因为文档显示 请注意 当使用自定义 回调 应用程序有责任建
  • 使用 PostgreSQL 安装 PassportJS

    是否有使用 PostgreSQL 设置 PassportJS 的演练教程 即用 PostgreSQL 替换 MongoDB 好吧 这已经开放了一段时间 但由于我发现自己也遇到了同样的问题 所以就这样了 您唯一需要做的就是使用 Postgre
  • 如何将 subscriptions-transport-ws 与 Passport 和 Express-Session 结合使用

    我正在使用与快递配合良好的护照本地策略 passport use localStrategy passport serializeUser user done gt done null JSON stringify user passpor
  • 使用 Passport-jwt 授权 jwt 令牌时获取 401 未经授权的状态

    成功登录后 我获得了 jwt 令牌 现在要访问受限 api 我正在发送授权标头 但我总是收到 401 未经授权 我已经提到过这个使用 Passport jwt 验证节点 API https stackoverflow com q 35528
  • 我可以使用passport-google回调来验证android/ios用户吗?

    我有一个使用 google passport oauth2 进行身份验证的 node js 服务器 我的服务器端代码看起来像这样文档 https www npmjs com package passport google oauth2 au
  • 验证 Instagram 时不会重定向到回调 URL

    我的 Instagram 服务器端登录流程遇到问题 我在用 passport js passport instagram 在我的 Node js 服务器的域中example com 一个简单的WebView在我的安卓客户端中 问题是有时输入
  • Passport-Local 和 deSerializeUser 问题的简单身份验证

    阅读此处有关如何在 Passport 流程中反序列化和序列化用户工作的精彩描述后 了解护照序列化反序列化 https stackoverflow com questions 27637609 understanding passport s
  • Node.js 护照会话 Cookie 域

    我正在使用 node js Passport 并试图弄清楚如何在父域上设置 cookie 以便它可用于子域 用户登录 Domain com 然后用户访问 Sub Domain com 他应该仍然处于登录状态 如何在父域上设置 cookie

随机推荐