Django-rest-knox - как аутентифицировать токен для проверки электронной почты?
Я пытаюсь установить проверку электронной почты с помощью django-rest-knox
. Ссылка отправляется. Когда я использую следующее:
from knox.auth import TokenAuthentication
class VerifyEmailAPI(generics.GenericAPIView):
def get(self, request):
# Get the token from request
# token = request.GET.get('token')
# print(token)
user = TokenAuthentication.authenticate(request, self)
print(user)
return Response({'message': 'Just testing for now'})
Урл:
http://127.0.0.1:8000/api/auth/email-verify/?token=58cab01ad07801dbe5e6c4fc5c6c7ef060bf7912cb723dc70e4c5fb677fbbf1e
Я получаю эту ошибку:
AttributeError: объект 'VerifyEmailAPI' не имеет атрибута 'META'
Завершённое отслеживание:
Отслеживание (последний последний вызов): Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/django/core/handlers/exception.py", строка 55, in inner response = get_response(request) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/django/core/handlers/base.py", строка 197, in _get_response response = wrapped_callback(request, *callback_args, **callback_kwargs) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/django/views/decorators/csrf.py", строка 54, в wrapped_view return view_func(*args, **kwargs) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/django/views/generic/base.py", строка 84, in view return self.dispatch(request, *args, **kwargs) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/rest_framework/views.py", строка 509, в dispatch response = self.handle_exception(exc) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/rest_framework/views.py", строка 469, в handle_exception self.raise_uncaught_exception(exc) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/rest_framework/views.py", строка 480, в raise_uncaught_exception raise exc Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/rest_framework/views.py", строка 506, в dispatch response = handler(request, *args, **kwargs) Файл "/Volumes/coding/fort_dev/accounts/api.py", строка 75, в get user = TokenAuthentication.authenticate(request, self) Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/knox/auth.py", строка 37, in authenticate auth = get_authorization_header(request).split() Файл "/Users/sid/eb-virt/lib/python3.8/site-packages/rest_framework/authentication.py", строка 20, в get_authorization_header auth = request.META.get('HTTP_AUTHORIZATION', b'') AttributeError: у объекта 'VerifyEmailAPI' нет атрибута 'META'
.
Я делаю что-то принципиально неправильное при использовании функции django-rest-knox
?