Внешнее хранение токенов JWT в Flask -JWT-Extended - PullRequest
0 голосов
/ 31 января 2020

У меня Flask приложение, работающее в AWS с использованием Flask -JWT-Extended. Он обслуживает вызовы REST API к веб-приложению.

Как я понял из документации, токены генерируются и хранятся в памяти. Я рассматриваю возможность хранения их вне приложения Flask в базе данных или Redis. Причина этого заключается в поддержке балансировки нагрузки:

  • Я предполагаю, что sticky-сессии потребуются для того, чтобы убедиться, что токен клиента может быть правильно декодирован и проанализирован на предмет достоверности
  • I я рассматриваю вопрос о том, чтобы поместить приложение в AWS Lambda, что, вероятно, приведет к стиранию списка JWT после обработки запроса.

Мои вопросы:

  • Есть ли какие-либо причина, по которой эта схема обычно не работает?
  • Если токены хранятся вне приложения Flask, неясно, как переопределить локальное хранилище токенов и получить доступ к внешнему носителю данных. Можно ли это сделать?

1 Ответ

1 голос
/ 02 февраля 2020

Токены не сохраняются в памяти. JWT работает, создавая токены, которые могут быть проверены на предмет несанкционированного изменения без необходимости сохранять какое-либо состояние на сервере (просто убедитесь, что JWT_SECRET_KEY действительно и действительно секретен). Вот статья об аутентификации без сохранения состояния, которую вы можете прочитать: https://blog.imaginea.com/stateless-authentication-using-jwt-2/

...