栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

护照js如何在会话中存储用户对象?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

护照js如何在会话中存储用户对象?

那么,序列化的用户对象存储在哪里?

简而言之

序列化的用户对象在method
的帮助下

req.user
通过
PassportJS
from进行存储(由
req.session.passport.user
填充
Express
Passport's

deserializeUser


Express
将会话对象的ID添加到用户浏览器上的cookie中,该cookie将被发送回以在每个请求的标头中表示。
Express
然后从标题中获取ID,然后搜索会话存储区(例如Mongo或其他内容),然后找到条目并将其加载到中
req.session

PassportJS
在和方法
req.session
的帮助下
serializeUser
,使用的内容跟踪经过身份验证的用户
deserializeUser
(有关的工作流程的更多信息
serializeUser
deserializeUser
请参阅此SO
问题中的答案)。

Express
负责创建会话。 会话何时创建?
那是当
Express
不检测会话cookie时。因此,您在或文件中组织
session
passport
配置的顺序非常重要。如果在上面声明了and
configs,那么对的所有请求也将获得一个会话,这是不好的。
app``server.js``session``passport``staticdirectory configs``static content

请参阅我对这个SO 问题的回答,在这里我提到了静态内容访问以及如何有选择地应用于

passport
某些路由,而不是默认路由(您可能不需要对所有路由进行身份验证-
因此可以避免不必要的连接
session store lookup
de-serialization
附加会话仅适用于映射到安全网址的请求(请参见下文)。

//selectively applying passport to only secure urlsapp.use(function(req, res, next){  if(req.url.match('/xxxx/secure'))    passport.session()(req, res, next)  else    next(); // do not invoke passport});

如果您想了解PassportJS的工作流程,我强烈建议您阅读一本很棒的教程。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/484920.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号