使用Express.js,会话非常简单。我很好奇它们实际上是如何工作的。
它在客户端上存储一些cookie吗?如果是这样,我在哪里可以找到该Cookie?如果需要,如何解码?
我基本上希望能够查看用户是否已登录,即使当时用户实际上不在该站点上(例如,当您在其他站点上时,facebook如何知道您已登录)。但是我想了解的是,我应该首先了解会议的工作方式。
我从未使用过Express.js,尽管根据他们关于该主题的文档,听起来像是:
Cookie存储在客户端上,带有一个密钥(服务器将使用该密钥来检索会话数据)和一个哈希(服务器将使用该哈希来确保cookie数据没有被篡改,因此,如果您尝试更改) Cookie的值无效)
与某些框架(例如Play Framework!)相反,会话数据保存在服务器上,因此cookie更像是会话的占位符,而不是实际会话数据的持有者。
从这里开始,服务器上的该会话数据看起来默认情况下保存在内存中,尽管可以将其更改为实现适当API的任何存储形式。
因此req,如您所说,如果您想在没有特定请求对象的情况下检查事物,则只需访问相同的存储即可。在第一个文档页面的底部,它详细说明了存储需要实现的必需方法,因此,如果您熟悉存储API,也许可以执行.getAll()类似的操作,并遍历会话数据并读取任何内容。您想要的值。
req
.getAll()