Как я могу использовать токены JWT в Django Rest Framework?
Я новичок в django и DRF, я пытаюсь создать систему аутентификации с использованием JWT, я хочу войти в систему пользователя сразу после регистрации, я прочитал документацию и мне удалось создать токен вручную и вернуть его в мой сериализатор, но мои вопросы таковы:
1) Как я могу использовать этот токен, чтобы увидеть, вошел ли пользователь в систему или нет?
2) Могу ли я использовать {% if user.is_authenticated %} в моих шаблонах? если так как?
3) Как я могу получить информацию о пользователях в другом представлении?
4) Есть ли более эффективный способ работы с аутентификациями с помощью DRF?
2 ответа
1. В основном, когда вы используете DRF и токен jwt, это означает, что вы используете аутентификацию на основе токенов, поэтому все ваши запросы должны содержать заголовок http для Authorization: basic <token value>
, Таким образом, бэкэнд аутентификации django drf распознает этот токен и, если он действителен, пользователь будет аутентифицирован.
2 - Я не думаю, что вы можете использовать этот шаблон тега больше. Потому что это для сеансовых аутентификаций.
3 - если вы предоставляете аутентификацию для данного токена и отправляете токен в заголовке, каждое представление должно содержать информацию о пользователе в request.user
4. Одно из лучших решений, на мой взгляд, основано на токенах с токенами jwt.
DRF Auth and Permissions содержит много полезной информации о работе с аутентификацией и разрешениями в DRF, ознакомьтесь с ней.
Добавление к тому, что @ Реза-Торкаман-Ахмади сказал:
В ваших представлениях вы можете использовать разрешения, чтобы убедиться, что пользователь аутентифицирован:
permission_classes = (permissions.IsAuthenticatedOrReadOnly,)