отделить сервер аутентификации от API (стека Mern), используя cookie или jwt? - PullRequest
0 голосов
/ 20 февраля 2019

Я хочу создать веб-приложение (игру) для стека mern, в котором статические файлы обслуживаются с помощью nginx, а nodejs запускается локально для API и игрового сервера.Теперь у меня есть второй сервер (aws), где я хочу, чтобы мой пользователь проходил аутентификацию с использованием nodejs + express + passportjs и использовал только Google, Facebook, Twitter, ... без электронной почты / пароля.Nginx перенаправляет пользователя на второй сервер, который будет иметь поддомен.

Начиная с недели, я пытаюсь найти наилучший способ аутентификации пользователя, предоставляя ему доступ к API, в то время как аутентификация и сервер API отключены.Причиной этого является то, что API и игровой сервер достаточно сложны, и я не хочу, чтобы на этом сервере также была часть аутентификации.Я также хочу создать какой-то магазин, где пользователь может покупать вещи и вносить монеты и т. Д.

Сначала я решил использовать jwt, потому что у меня два сервера, и на сервере API я могу просто проверить, если токенверно.Но чем больше я читаю о jwt, тем больше я читаю, что не следует использовать jwt, потому что истек срок действия, как защитить токен и т. Д., Даже Auth0 предложил использовать обычные куки.

Тогда я решил использовать cookie-файлы и express-session с DynamodB в качестве session-store.Поскольку у сервера авторизации есть поддомен, я могу использовать этот файл cookie в своем основном домене.Чтобы проверить куки, я бы использовал passportjs без стратегии и экспресс-сессию с секретом.Из-за экспресс-сессии будут touchInterval и ttl, и сервер API не должен изменять их, но пользователь будет подключаться к серверу только один раз.

Теперь я не знаю, что использовать с такими настройками.

Спасибо за ваш совет и помощь!

...