Python: создание токенов без моделей аутентификации Django
Привет! Новичку в django_restframework
сложно работать с токенами без предварительного создания модели учетной записи BaseUserManager
и абстрагирования ее, чтобы иметь возможность доступа к функциям AuthToken restframework
. Я имею в виду следующее:
По сути, вы можете создавать токены для своей обычной модели, но это требует некоторой работы. Я имею в виду, если ваша модель такая:
Все, что вам нужно сделать, это:
- Создать новый файл Python в своем приложении и дать ему имя. Этот файл предназначен для обработки токенов, я назвал его
tokenizer.py
.
- Создать еще один файл, обрабатывающий получение токенов, я назвал свой
token_getter.py
.
- Теперь нужно создать третий файл, который обрабатывает проверку токена, назовите его так, как вы считаете лучшим на свой вкус. Я назвал его
auth_validity.py
.
from .auth_validity import is_authenticated
from .token_getter import get_token
from .tokenizer import AuthToken
AuthToken.objects.create(user=account)
obj = Account.objects.get(email_address = account.email_address)
obj.token = AuthToken.objects.get(user=obj).key
obj.save()
if is_authenticated(request):
account = Account.objects.get(token = get_token(request))
Ну, я не знаю, насколько безопасна эта реализация, но проще, если вы хотите избежать использования AbstractBaseUser
и BaseUserManager
, чтобы получить доступ к аутентификации токена в django restframework
. Надеюсь, это поможет кому-то, кто ищет более простой выход без добавления дополнительных пакетов или использования BaseUserManager
.