gpt4 book ai didi

javascript - `req.session.secret` 未在使用 Express-Session 的路由中定义

转载 作者:行者123 更新时间:2023-12-03 06:53:02 25 4
gpt4 key购买 nike

我有一个使用快速 session 的简单应用程序。这是我启动 session 的入口脚本。

export const app = express();
export const server = Server(app);

app.use(bodyParser.urlencoded({ extended: false }));
app.use(bodyParser.json());
app.use(cookieParser());
app.use(session({
secret: "changed to nonsense string for this question",
resave: true,
saveUninitialized: true,
cookie: { maxAge: 60000 }
}));
app.use('/api/v1/auth', require('./users'));

根据documents of express-session ,我应该能够通过 req.session 访问它。我想获取用于在一条路由中创建 json token 的 key 。这是我所做的:

export const routes = Router();
routes.post('/login', function (req, res, next) {
// ...
const token = jwt.sign(user, req.session.secret, { expiresIn: '5m' });
});

export default routes;

但是,它始终表示 req.session.secret 未定义。我究竟做错了什么?如何访问路由中的 session secret ?

最佳答案

secretexpress-session 配置的一部分,但无法通过 req.session 访问它(我认为这是在目的)。

如何从您的路线访问它取决于您首先从哪里获取 secret 。通常这来自环境或配置变量,我不明白为什么您不能直接从路由处理程序访问这些变量。

如果 secret 是硬编码的,并且您希望保持这种方式,则可以为其创建一个单独的模块,可以在需要 secret 的任何地方进行 require() 操作。

关于javascript - `req.session.secret` 未在使用 Express-Session 的路由中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37414928/

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