我在开发中使用带有护照的节点/表达式。我碰到一篇文章说:
Express加载会话数据并将其附加到请求。当护照在会话中存储序列化的用户时,可以在req.session.passport.user中找到序列化的用户对象。
但是令我惊讶的是,浏览器cookie中的sessionID存储的值在登录前后都保持不变。那么,序列化的用户对象存储在哪里?
我以为它最初存储在用户sessionid
cookie中,但似乎不是这样,因为我仍然可以使用req.session.passport.user
那么,序列化的用户对象存储在哪里?
简而言之
序列化的用户对象在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``static directory configs``static content
请参阅我对这个SO 问题的回答,在这里我提到了静态内容访问以及如何有选择地应用于passport
某些路由,而不是默认路由(您可能不需要对所有路由进行身份验证-
因此可以避免不必要的连接session store lookup
并de- 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的工作流程,我强烈建议您阅读一本很棒的教程。
我正在寻找一个持久的会话管理器,将会话保存在文件系统(如PHP)上,可以与DropWizard一起使用。我看到有一个<code>环境。getSessionHandler(),但我没有看到关于它的文档。 我可以写我自己的,但我希望有一个煮熟的饭。上面的会话句柄是我要找的吗?如何使用它?
当用户登录时,我将用户id存储到会话中,然后我希望将该用户id传递给ajax以检索数据库中的其他信息。存储在会话中的用户ID未传递给allResult。php我的登录页面代码片段,我在其中进行会话: 现在,登录后,用户将被带到仪表板: 在仪表板中,我试图使用ajax访问用户的其他数据 我需要获取用户id才能运行allResult。php所有结果。php
问题内容: 我想用Spring来实现一个购物车,所以我需要在会话中保存一个对象(该对象具有product,paymentType和deliveryType之类的属性)。我尝试使用bean并将属性“ scope”设置为“ session”来创建它,但是它不起作用,我应该在控制器或类中使用一些其他注释吗?任何示例用法都将非常有帮助:-)预先感谢。 问题答案: 然后 如果它在Web上下文(dispatc
我需要使用session来保留用户的选择。(如果用户选择的日期范围在数据刷新时返回到默认值)。 这是我的daterangepicker代码。请帮助我如何设置“开始”日期和“结束”日期的会话存储,以及如何从会话存储中检索它们。提前道谢。
问题内容: 我想知道是否有可能直接在Flask会话中存储对象,而无需重写序列化程序。为了使此功能正常工作,我需要在课堂上实现任何功能吗?下面的示例代码。这就是我想要的样子。但是,当您尝试执行该操作时,它会抛出错误信息TypeError: Object of type ‘Test’ is not JSON serializable 任何帮助是极大的赞赏!提前致谢!:) 问题答案: 使对象序列化并实现
我正在尝试登录到一个网站,并获得一个页面站点的页面源后,我用java URLConnection登录到该网站。我面临的问题是我无法维护会话,所以服务器给我这个警告,不让我连接: 该系统要求使用HTTP Cookie来验证授权信息。我们的系统检测到您的浏览器已禁用HTTP Cookie,或不支持它们。有关如何正确配置浏览器以便与此系统一起使用的详细信息,请参阅浏览器中的帮助页。 这是我的源代码: