Я написал очень простой пользовательский класс аутентификации, чтобы реализовать простую библиотеку JWT для моих пользовательских нужд аутентификации.
Я генерирую токены вручную, а затем отправляю токен доступа к моему API. По умолчанию этого будет достаточно, но поскольку я не использую модель пользователя Django по умолчанию, я получаю User not found. Это потому, что мне нужно реализовать собственный сервер аутентификации.
Мне нужно прочитать этот токен, чтобы запросить базу данных с заданным идентификатором пользователя и проверить, действителен ли этот токен. В моем примере я зафиксировал номер 2.
class ExampleAuthentication(authentication.BaseAuthentication):
def authenticate(self, request):
try:
user = vAuthUser.objects.get(pk=2) #this should receive the user_id from the token
except:
raise AuthenticationFailed('No such user')
return (user, None)
Мой API выглядит так:
class MyAPI(APIView):
authentication_classes = (ExampleAuthentication,)
permission_classes = (IsAuthenticated ,)
def get()...