node.js - 如何在护照的 deserializeUser 函数中获取 req.params?
问题描述
我的 serializeUser 函数如下所示:
passport.serializeUser(function (req, user, done) {
console.log("serialize")
console.log(req.params)
done(null, user.id);
});
我的反序列化用户函数如下所示:
passport.deserializeUser(function (req, id, done) {
console.log("deserialize")
console.log(req.params)
console.log(id)
// ...... Some other code
});
我的路线是这样的:
/api/:name/list
/api/product/:name
....
在 serializeUser 函数中,我可以使用以下命令获取名称参数:req.params.name
在 deserializeUser 函数中,req.params 是一个空对象 {}。
如何访问 deserializeUser 函数中的 req.params.name ?
解决方案
使用上面的代码,只有user.id
在会话中被序列化。您可以将 id 和参数包装在一个对象中并对其进行序列化,而不是仅仅序列化 id:
passport.serializeUser(function (req, user, done) {
done(null, { id: user.id, params: req.params} );
});
passport.deserializeUser(function (serializedData, done) {
console.log(serializedData.params)
console.log(serializedData.id)
// ...... Some other code
});
推荐阅读
- python - Jenkins 到 Linux 问题 - Python 文件执行
- python - 如何通过 Jupyter 中的 Python 命令与串行 com 端口通信?
- wordpress - Wordpress post date hook
- java - 在 mule 3 中进行数据转换时面临的问题
- html - 选择选项的 CSS 设置字体系列不起作用
- mysql - 在 MySQL 中创建嵌套触发器
- python - 是否有基于索引和列的 Pandas 方法加入?
- python - pandas groupby sum 和 agg
- java - 无法连接到远程 mariaDB
- node.js - PM2 集群模式是否在一个进程中处理 WebSocket?