当前位置: 首页 > 面试题库 >

会话如何在Express.js和Node.js中工作?

松高爽
2023-03-14
问题内容

使用Express.js,会话非常简单。我很好奇它们实际上是如何工作的。

它在客户端上存储一些cookie吗?如果是这样,我在哪里可以找到该Cookie?如果需要,如何解码?

我基本上希望能够查看用户是否已登录,即使当时用户实际上不在该站点上(例如,当您在其他站点上时,facebook如何知道您已登录)。但是我想了解的是,我应该首先了解会议的工作方式。


问题答案:

我从未使用过Express.js,尽管根据他们关于该主题的文档,听起来像是:

  • Cookie存储在客户端上,带有一个密钥(服务器将使用该密钥来检索会话数据)和一个哈希(服务器将使用该哈希来确保cookie数据没有被篡改,因此,如果您尝试更改) Cookie的值无效)

  • 与某些框架(例如Play Framework!)相反,会话数据保存在html" target="_blank">服务器上,因此cookie更像是会话的占位符,而不是实际会话数据的持有者。

  • 从这里开始,服务器上的该会话数据看起来默认情况下保存在内存中,尽管可以将其更改为实现适当API的任何存储形式。

因此req,如您所说,如果您想在没有特定请求对象的情况下检查事物,则只需访问相同的存储即可。在第一个文档页面的底部,它详细说明了存储需要实现的必需方法,因此,如果您熟悉存储API,也许可以执行.getAll()类似的操作,并遍历会话数据并读取任何内容。您想要的值。



 类似资料:
  • 问题内容: 如何使 connect.sid cookie本身仅是会话cookie,而不是持久性cookie? 我尝试失败 但是cookie仍具有到期时间戳。 问题答案: 以上工作。因此,通过将maxAge设置为null,我确实管理了expressjs以使用会话cookie。ew

  • 问题内容: 在我提出疑问之前,我至少应该解释一下使用中间件时发生的事情。要使用中间件,要使用的功能是。在执行中间件时,它将使用或使其调用下一个中间件,从而不再调用任何中间件。这意味着我放置中间件调用的顺序很重要,因为某些中间件依赖于其他中间件,而接近末尾的某些中间件甚至可能不会被调用。 今天,我正在开发应用程序,并在后台运行服务器。我想进行一些更改并刷新页面,然后立即查看更改。具体来说,我正在更改

  • 问题内容: 我需要帮助来了解Web应用程序的会话概念。我正在使用Express 3.0运行Node.js服务器。 我的目标是: 为每个登录的用户创建一个会话 存储此会话,并将其用于验证用户是否已登录(防止同时使用同一用户的两个设备)并限制对某些页面的访问(通过将会话ID与其他数据匹配) 我将使用MemoryStore保存会话(似乎最简单)。如果上述目标有意义,您能否提供有关如何实现这些目标的详尽解

  • 问题内容: http://www.javascriptkit.com/javatutors/cookie.shtml 另一方面,仅会话cookie将信息存储在浏览器内存中,并且在浏览器会话持续时间内可用。换句话说,从存储时间到关闭浏览器之前,都可以使用会话cookie中存储的数据。在此期间在页面之间移动不会删除数据。 如何使用Express.js做到这一点? 问题答案: 以下是我想要的(某种)。当

  • 问题内容: 在Node.js中管理会话变量的最佳方法是什么?有图书馆吗? 问题答案: 您可以使用以下命令轻松完成此操作: 连接: http : //senchalabs.github.com/connect/ Connects就像Ruby中的Rack。它为您提供了一个额外的层,您可以在其中“玩”身份验证,会话,Cookie等。 另一种选择是使用框架: Express.js: http://expr

  • 问题内容: 我无法在快速工作区中渲染更少的CSS。 这是我当前的配置 (我的css / less文件 位于 “ public / stylo /”中) : 这是我的 main.jade文件 : 这是我的 main.less CSS : 这是我的好 东西 。 很酷的交易。现在: 我通过npm安装的次数较少, 并且从另一篇帖子中听说@imports应该引用而不是。在任何情况下,我已经试过了 组合 开关