是否可以将用户身份验证令牌作为全局变量(process.env)存储在nodejs lambda函数中?

问题描述 投票:0回答:1

我们有一个使用AWS Lambda(nodejs)和API Gateway构建的BFF,该BFF与需要用户身份验证的API进行接口。我们构建它的方法是为API服务提供一个单独的模块/文件。像这样的东西:

src
--handlers
  --users.js // with function getMe()
--apiServices
  --usersApi.js // with function getUser(id)

那么发生的事情是getMe()函数将接收带有身份验证令牌的带有请求标头的事件。但是我们需要在getUser(id)中使用auth令牌。我想到了两种方法可以做到这一点:

  1. 更新getUser(id)以接受authToken参数。>
  2. 将身份验证令牌存储在全局变量中
  3. 我更喜欢执行#2,因为它需要较少的更改,但是我担心这可能不是一个好主意,因为无法确定何时可以重用lambda容器(或者是否可以在以下位置重用)全部):https://aws.amazon.com/blogs/compute/container-reuse-in-lambda

以前有人尝试过第二种方法吗?还是我应该选择#1? #1的问题是apiServices下我们有很多文件,它们具有很多功能,因此我想应用尽可能少的更改。

我们有一个使用AWS Lambda(nodejs)和API Gateway构建的BFF,该BFF与需要用户身份验证的API进行接口。我们构建它的方法是为API提供一个单独的模块/文件...

node.js amazon-web-services aws-lambda
1个回答
0
投票

您可以同时使用两种方法,但是要小心,并仔细检查用户之间的切换上下文,因为lambda会持续很短的时间,并且可能会被多次击中。

© www.soinside.com 2019 - 2024. All rights reserved.