JWT против аутентификации на основе сеанса для PWAPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 JWT против аутентификации на основе сеанса для PWA

Сообщение Anonymous »

Мне нужен совет относительно проекта PWA. Бэкэнд запускает API на основе PHP, который я написал для предоставления PWA данных. Доступ к API требует аутентификации, и я бы хотел, чтобы пользователь оставался аутентифицированным после входа в систему в течение максимум недели во время бездействия.
В настоящее время я решил эту проблему с помощью JWT. Во время действия токена доступа JWT я полагаюсь на данные, хранящиеся в JWT: идентификатор пользователя и идентификатор клуба (с указанием членства), чтобы избежать необходимости проверять, активным членом какого клуба является пользователь.
Недавно Я прочитал много статей о том, что JWT — это плохая практика и ее часто неправильно используют, и что аутентификация на основе сеанса — лучшее решение. Теперь мне интересно, стоит ли мне переходить к этому, особенно учитывая следующие требования:
  • бэкенд PHP должен работать на общем хостинге (1&1 IONOS) , поэтому нет доступного Redis/Memcached (для кэширования состояния аутентификации пользователя и отсутствия необходимости запрашивать БД при каждом запросе) (я думаю?)
  • пользователю не придется проходить аутентификацию каждый раз используя приложение, но оставаться в системе в течение 7 дней во время активности, при этом окно аутентификации автоматически расширяется при использовании (возможно ли вообще время жизни сеанса PHP 7 дней на общем хостинге / хорошая идея?)
  • Я хочу избежать проверки право доступа пользователя/членство в клубе при каждом запросе API, чтобы уменьшить нагрузку на базу данных (поэтому ранее «кэширование» идентификатора пользователя и идентификатора клуба через JWT)
  • Однако мне нужно проверить право доступа пользователя периодически, например каждый 1 час, чтобы разрешить бан потенциального пользователя (до сих пор с JWT я делал эту проверку каждый раз, когда используется токен обновления, проверяя БД, если токен обновления был признан недействительным вручную - я полностью осознаю, что это приводит к тому, что JWT теряет свою апатридность )
  • Ожидается, что приложение сможет обслуживать от десятков до сотен одновременных пользователей.
Лучше ли удовлетворяются эти требования? используя аутентификацию на основе сеанса? Меня особенно интересуют последствия, связанные с безопасностью и гибкостью/UX.
Заранее спасибо за ваши идеи! 🙏

Подробнее здесь: https://stackoverflow.com/questions/793 ... th-for-pwa
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»