Есть такой код:
@api_view(['POST'])
def login(request):
if request.method == 'POST':
data = json.loads(request.body.decode('utf-8'))
username = data.get('username', None)
password = data.get('password', None)
if username is not None and password is not None:
user = authenticate(username=username, password=password) #функция из джанги, которая ка бы отрабатывает, но при этом, если я буду логиниться как админ и зайду в админку, то меня попросят залогиниться заново
if user is not None:
if user.is_active:
token, created = Token.objects.get_or_create(user=user)
return JsonResponse({
'token': token.key,
'username': user.username
})
else:
return JsonResponse({
'error': 'Invalid User'
}, status=status.HTTP_401_UNAUTHORIZED)
else:
return JsonResponse({
'error': 'Invalid Username/Password'
}, status=status.HTTP_401_UNAUTHORIZED)
else:
return JsonResponse({
'error': 'Invalid Data'
}, status=400)
elif request.method == 'OPTIONS':
return JsonResponse({})
else:
return JsonResponse({
'error': 'Invalid Method'
}, status=405)
user = authenticate(username=username, password=password)
#функция из джанги, которая ка бы отрабатывает(переменной user присвоится то что надо), но при этом, если я буду логиниться как админ и зайду в админку, то меня попросят залогиниться занов.
Ещё не совсем понимаю как работать с токеном, который DRF отдает, неужели при каждой проверке прав нужно лезть в базу и сверять токен, зачем он тогда вообще нужен? В доке по дрф 1 абзац про то как токен получить, и всё. Если расскажите что и как, то буду признателен.