Для веб-приложения, какой тип аутентификации?Плюсы / минусы?
Приложение должно быть веб-приложением для FE, который мы планируем использовать Angular, а для BE мы планируем использовать NodeJS.Приложение будет иметь публичные и частные маршруты в зависимости от роли пользователя, и мы планируем также разработать приложение для Android и iOS.
Я вижу, что есть два подхода:
Я прочитал пост, в котором не рекомендуется использовать JWT вместо Сессии.
Некоторые соображения:
JWT
cons
- нуждается в проверке на стороне сервера для признания недействительным некоторого токена (поэтому подход не является государственным)
- информация о пользователе: если я поставлюони внутри полезной нагрузки могут генерировать тяжелые заголовки, и, если пользовательская информация изменяется (т.е. роль), мне нужно изменить токен (и лишить законной силы предыдущий).Если я использую только идентификатор пользователя внутри полезной нагрузки, мне приходится загружать каждый раз из БД или системы кэширования (т. Е. Redis).
pro
- API с JWT Auth, кажется, легкоиспользуется через веб или мобильное приложение
Session (т.е. Express Session with Redis)
cons
- сеанс установить cookieс идентификатором сеанса кажется трудным использовать этот подход в собственном мобильном приложении.
Не могли бы вы подтвердить или добавить другие плюсы / минусы и предложить лучший подход?
Использование Socket.io (с сеансом / кешем сервера) вместо REST API может быть допустимой альтернативой предыдущим подходам?