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

德斯蒙德利

我在开发中使用带有护照的节点/表达式。我碰到一篇文章说:

Express加载会话数据并将其附加到请求。当护照在会话中存储序列化的用户时,可以在req.session.passport.user中找到序列化的用户对象。

但是令我惊讶的是,浏览器cookie中的sessionID存储的值在登录前后保持不变。那么序列化的用户对象存储在哪里?

我以为它sessionid最初是存储在用户cookie中的,但事实并非如此,因为我仍然可以使用req.session.passport.user

拉夫

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

简而言之

序列化的用户对象在method的帮助下req.user通过PassportJSfrom进行存储(req.session.passport.user填充ExpressPassport's deserializeUser

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

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

Express负责创建会话。会话何时创建?那是什么Express时候不检测会话cookie。因此,您文件中组织sessionpassport配置的顺序非常重要。如果在上面声明了and configs,那么对的所有请求也将获得一个会话,这不是很好。appserver.jssessionpassportstatic directory configsstatic content

请参阅我对这个SO问题的回答,在这里我提到了静态内容访问以及如何选择性地应用于passport某些路由,而不是默认路由(您可能不需要对所有路由进行身份验证-因此可以避免不必要的连接session store lookupde-serialization附加会话仅适用于映射到安全网址的请求(请参见下文)。

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

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何访问会话中存储的动态对象

来自分类Dev

Rails:如何在会话中存储数据?

来自分类Dev

如何在iOS应用中为每个会话存储临时值/对象

来自分类Dev

如何在会话中存储用户

来自分类Dev

Bluz如何在Redis中存储会话?

来自分类Dev

会话存储:如何存储多个对象

来自分类Dev

狂欢-在会话中存储对象

来自分类Dev

如何在angular js的cookie中存储登录会话ID?

来自分类Dev

如何在会话中存储检索到的对象并访问后记?

来自分类Dev

ASP.NET 5(核心):如何在会话缓存(ISession)中存储对象?

来自分类Dev

如何在会话中存储值?

来自分类Dev

如何在会话中存储变量?

来自分类Dev

如何在会话中显示用户ID?

来自分类Dev

Rails:如何在会话中存储数据?

来自分类Dev

在会话中存储对象

来自分类Dev

如何在AngularJS中存储用户会话?

来自分类Dev

如何在iOS应用中为每个会话存储临时值/对象

来自分类Dev

如何在整个会话中存储变量?

来自分类Dev

会话存储:如何存储多个对象

来自分类Dev

如何获得护照中的用户页面

来自分类Dev

OpenStruct如何在会话中存储

来自分类Dev

如何在会话中存储值?

来自分类Dev

如何在多个会话中配置快递和护照

来自分类Dev

如何从护照中的用户对象中删除密码字段

来自分类Dev

在 PHP 会话中存储对象

来自分类Dev

如何在 Symfony 2.8 中的表单存储库中获取用户对象

来自分类Dev

如何在 Node js 中添加会话

来自分类Dev

如何在会话中存储数据

来自分类Dev

如何在护照js中验证密码