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