Node.js/API:需要通过应用程序访问特定于请求的信息

Node.js/API:需要通过应用程序访问特定于请求的信息,node.js,api,session,oauth-2.0,access-token,Node.js,Api,Session,Oauth 2.0,Access Token,我们目前已禁用会话 相反,每个请求都使用access\u令牌发送,这样在请求结束时,下一个请求不会有任何内容 ie.收到请求-->验证访问令牌并将关联用户设置为“当前用户” 我们遇到的第一个问题是在整个应用程序中访问此用途的能力 我们需要存储库中的当前用户id 我们的解决方案是使用node.js。这并不是很好,因为当来自不同用户的并发请求发生时,域将被覆盖——它是共享的 我需要的是: 一个全局可访问(或按要求)的对象,可以包含 我分配给它的几个参数 这个全局可访问的对象对于每个请求都是唯一的,

我们目前已禁用会话

相反,每个请求都使用
access\u令牌发送
,这样在请求结束时,下一个请求不会有任何内容

ie.收到请求-->验证访问令牌并将关联用户设置为“当前用户”


我们遇到的第一个问题是在整个应用程序中访问此用途的能力

我们需要存储库中的当前用户id

我们的解决方案是使用node.js。这并不是很好,因为当来自不同用户的并发请求发生时,域将被覆盖——它是共享的

我需要的是:

  • 一个全局可访问(或按要求)的对象,可以包含 我分配给它的几个参数

  • 这个全局可访问的对象对于每个请求都是唯一的,因此任何给定的请求都可以检索与其自身相关的信息


  • 有什么建议吗?

    最简单的方法是将其附加到您的请求对象(如果您使用的是express,请在某些中间件中执行)

    
    req.access_token='get_the_token_and_put_it_here';
    


    现在,您可以从任何可以访问请求对象的地方访问它。

    不过我需要其他层的请求对象。有没有一种方法可以在不通过每一层的情况下访问它?您无法避免通过您的层传递一些信息,无论是所有数据还是某种类型的标识符。我建议您将信息保存到一些外部存储器(例如数据库);或者,您可以创建一个模块,从中可以使用某种类型的标识符(本质上类似于数据存储)放置和获取所需的信息。注意,使用第二个选项,如果节点进程死亡,则信息将丢失。