gpt4 book ai didi

node.js - 重启 Node 后的req.user

转载 作者:太空宇宙 更新时间:2023-11-03 23:40:12 24 4
gpt4 key购买 nike

我已附加 Passportjs 来验证我网站上的用户身份。我使用 localStrategy ,一切正常。但我有一些问题(可能是passportjs的功能) - 重新启动 Node 后,req.user未定义,用户应该重新登录。

我应该如何在启动服务器上初始化 req.user?

最佳答案

LocalStrategy 在登录后将用户凭据存储在内存中。这意味着当您重新启动 Node 时,凭据将不可避免地丢失。

但是,passport 确实使用了 Express 中的 session Cookie 功能,因此您可以以标准 Express 方式保留 Cookie。

使用 RedisStore 模块非常容易,您可以将 Express 对象传递给该模块:

var express = require('express');
var RedisStore = require('connect-redis')(express);

在设置 Passport 之前,请在 Express 中启用 Redis 的 session 持久性:

app.use(express.cookieParser());
app.use(express.session({
secret: "a-secret-token",
store : new RedisStore({
host : 'redis-hostname',
port : 'redis-port',
user : 'redis-username',
pass : 'redis-password'
}),
cookie : {
maxAge : 604800 // one week
}
}));
app.use(passport.initialize());
app.use(passport.session());

您需要在计算机上安装 Redis,并更改上面的详细信息以匹配您要连接的 Redis 实例。

关于node.js - 重启 Node 后的req.user,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25338228/

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