Вы создаете токен в этом представлении. После этого вам понадобятся два других механизма:
Ваш клиент должен отправлять этот токен API с каждым запросом в заголовке Авторизация , например:
Authorization: Bearer your_token
- На стороне API вам необходимо использовать класс аутентификации, который ищет заголовок авторизации, берет токен и декодирует его, а также находит экземпляр пользователя, связанный с токеном, если токен действителен.
Если вы используете библиотеку для аутентификации drf jwt, она должна иметь класс аутентификации, который вы можете использовать. Если вы реализуете его вручную, вам нужно написать класс аутентификации, который подклассов DRF BaseAuthentication самостоятельно. В принципе это может выглядеть так:
class JwtAuthentication(authentication.BaseAuthentication):
def authenticate(self, request):
auth_header = request.META.get('HTTP_AUTHORIZATION')
if auth_header:
key, token = auth_header.split(' ')
if key == 'Bearer':
# Decode the token here. If it is valid, get the user instance associated with it and return it
...
return user, None
# If token exists but it is invalid, raise AuthenticationFailed exception
# If token does not exist, return None so that another authentication class can handle authentication
Вы должны указать DRF использовать этот класс аутентификации. Добавьте это в свой файл настроек для этого:
REST_FRAMEWORK = {
...
'DEFAULT_AUTHENTICATION_CLASSES': [
'path.to.JwtAuthentication',
...
]
}