Можно ли хранить токен аутентификации пользователя в виде глобальной переменной (process.env) в лямбда-функции nodejs? - PullRequest
0 голосов
/ 04 марта 2020

У нас есть BFF, построенный с AWS Lambda (nodejs) и шлюзом API, который взаимодействует с API, который требует аутентификации пользователя. И как мы его построили, у нас есть отдельный модуль / файл для сервисов API. Примерно так:

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

Итак, что происходит, функция getMe () получит событие с заголовками запроса с токеном аутентификации. Но нам нужно использовать токен аутентификации в getUser (id). Я подумал о двух вариантах сделать это:

  1. обновить getUser (id), чтобы принять authToken параметр.
  2. сохранить токен аутентификации в глобальной переменной

Я предпочитаю делать # 2, потому что это требует меньше изменений, но я боюсь, что это может быть не очень хорошая идея, потому что нет никакого способа точно знать, когда будет использоваться контейнер лямбда (или если будет использоваться повторно вообще): https://aws.amazon.com/blogs/compute/container-reuse-in-lambda

Кто-нибудь пробовал второй подход раньше? Или мне просто go с # 1? Что касается # 1, то в apiServices у нас много файлов с множеством функций, поэтому я хотел бы применить как можно меньше изменений.

1 Ответ

1 голос
/ 04 марта 2020

Вы можете сделать это обоими способами, но будьте осторожны и дважды проверьте переключение контекста между пользователями, потому что лямбда сохраняется в течение короткого периода времени и может попасть несколько раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...