1
1
Fork 0
novelmetrix-python/ras/api/modules/auth.py

32 lines
981 B
Python
Raw Normal View History

2023-11-10 11:57:38 +01:00
from rest_framework.decorators import api_view
from django.contrib.auth import get_user_model
from django.http import JsonResponse
import jwt
@api_view(['POST'])
def login(request):
username = request.POST.get('username')
password = request.POST.get('password')
User = get_user_model()
try:
user = User.objects.get(username=username)
if user.check_password(password):
payload = {
'id': user.id,
'name': user.first_name + ' ' + user.last_name,
'username': user.username,
'email': user.email
}
token = jwt.encode(payload, 'secret', algorithm='HS256')
return JsonResponse({
"user": payload,
"token": token
})
else:
return JsonResponse({'error': 'Wrong credentials'})
except User.DoesNotExist:
return JsonResponse({'error': 'User does not exist'})