Проверка, был ли пользователю присвоен токен в Django Restframework

Я настраиваю аутентификацию токена для сайта, использующего Django Restframework, и мне нужно, чтобы пользователь мог загрузить свой токен, однако суть в том, что он может загрузить свой токен только один раз (аналогично модели Amazon AWS).

Другими словами; Есть ли собственный способ проверить, был ли пользователю назначен токен в restframework?

2 ответа

Решение

Вы можете сделать это:

from rest_framework.authtoken.models import Token
from django.conf import settings
token = Token.objects.create(user=settings.AUTH_USER_MODEL)

Теперь вы можете просто проверить, есть ли у данного пользователя токен:

user_with_token = Token.objects.get(user=user)

если вы просто хотите посмотреть, есть ли у пользователя токен:

is_tokened = Token.objects.filter(user=user).exist()  # Returns a boolean

если запись существует, это означает, что пользователю назначен токен. Ссылка: ЗДЕСЬ

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

Попробуйте использовать сигнал django для автоматического создания токена пользователя, что-то вроде этого в файле моделей.

@receiver(post_save, sender=User)
def create_auth_token(sender, instance=None, created=False, **kwargs):
if created:
    Token.objects.create(user=instance)
Другие вопросы по тегам