Как я могу использовать токены 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,) 
Другие вопросы по тегам