Angular / NodeJs Webapp, JWT Auth или Session Auth? - PullRequest
0 голосов
/ 23 ноября 2018

Для веб-приложения, какой тип аутентификации?Плюсы / минусы?

Приложение должно быть веб-приложением для FE, который мы планируем использовать Angular, а для BE мы планируем использовать NodeJS.Приложение будет иметь публичные и частные маршруты в зависимости от роли пользователя, и мы планируем также разработать приложение для Android и iOS.

Я вижу, что есть два подхода:

  • Веб-токен JSON
  • Сессия

Я прочитал пост, в котором не рекомендуется использовать JWT вместо Сессии.

Некоторые соображения:

JWT

cons

  • нуждается в проверке на стороне сервера для признания недействительным некоторого токена (поэтому подход не является государственным)
  • информация о пользователе: если я поставлюони внутри полезной нагрузки могут генерировать тяжелые заголовки, и, если пользовательская информация изменяется (т.е. роль), мне нужно изменить токен (и лишить законной силы предыдущий).Если я использую только идентификатор пользователя внутри полезной нагрузки, мне приходится загружать каждый раз из БД или системы кэширования (т. Е. Redis).

pro

  • API с JWT Auth, кажется, легкоиспользуется через веб или мобильное приложение

Session (т.е. Express Session with Redis)

cons

  • сеанс установить cookieс идентификатором сеанса кажется трудным использовать этот подход в собственном мобильном приложении.

Не могли бы вы подтвердить или добавить другие плюсы / минусы и предложить лучший подход?

Использование Socket.io (с сеансом / кешем сервера) вместо REST API может быть допустимой альтернативой предыдущим подходам?

...