Как реализовать функцию «Помни меня» с помощью DRF JWT? - PullRequest
0 голосов
/ 11 сентября 2018

Я пытаюсь реализовать способ, позволяющий пользователям оставаться в системе на моем веб-сайте с использованием реализации JWT DRF.

Из документации предполагается, что после истечения срока действия токена их невозможно обновить.

Учитывая, что пользователь может закрыть свой браузер, у меня есть только два варианта: либо долгоживущие токены, либо сохранение имени пользователя / пароля в localStorage, и оба варианта кажутся небезопасными.

Есть ли другой способ добиться этого? Альтернативно, есть ли способ иметь только долгоживущие токены в зависимости от того, что хочет пользователь (т.е. выбирает опцию запомнить меня)

1 Ответ

0 голосов
/ 12 сентября 2018

Да, JWT предназначены только для краткосрочной аутентификации сессий, даже с обновлением.Если вы разрабатываете для браузера, я предлагаю вам использовать обычную старую SessionAuthentication , чтобы пользователи вошли в систему на более длительный срок (например, 30 дней).

Если вы хотите избежать куки, выможно использовать комбинацию недолговечных и долгоживущих токенов с использованием, например, OAuth2 - посмотрите Django OAuth Toolkit , который интегрируется с DRF.Краткосрочный токен аутентифицирует сеанс точно так же, как JWT, в то время как долгоживущий токен (30-60 дней жизни) используется для получения краткосрочного токена из вашего API и может храниться в localStorage.

...