gpt4 book ai didi

node.js - 在 Nodejs 中使用 Passport 时何时将 session 设置为 false

转载 作者:行者123 更新时间:2023-12-02 03:16:36 24 4
gpt4 key购买 nike

我刚刚使用 passport.js 完成了我的注册身份验证,但是当我尝试使用登录身份验证时,我一直遇到错误

Error: Failed to serialize user into session

这是我的发帖路线:

    router.post("/login",passport.authenticate('local-login'),function(req,res){
res.redirect("/users")

if (req.user) {
console.log("Logged In!")
} else {
console.log("Not logged in!")
}

})

我在 stackoverflow 上看到一条评论说我们需要做:

app.post('/login', passport.authenticate('local', {
successRedirect: '/accessed',
failureRedirect: '/access',
session: false
}));

在登录路径中。

使用上面的代码确实解决了错误消息。也许这是我对 Passport 身份验证的不了解,但这不是通过登录将用户信息存储在 session 中的重点。如果我们将 session 设置为 false,我们如何存储用户信息?

最佳答案

这取自 docs passport.js 的。

Disable Sessions

After successful authentication, Passport will establish a persistent login session. This is useful for the common scenario of users accessing a web application via a browser. However, in some cases, session support is not necessary. For example, API servers typically require credentials to be supplied with each request. When this is the case, session support can be safely disabled by setting the session option to false.

所以基本上,不同之处在于对于客户端(例如浏览器),您通常希望具有 session 持久性。对于调用内部 API 并且实际上不需要持久性的情况,您可以禁用 session 。

关于node.js - 在 Nodejs 中使用 Passport 时何时将 session 设置为 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55930439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com