2023-11-10 11:57:38 +01:00
|
|
|
from rest_framework.decorators import api_view
|
|
|
|
from django.contrib.auth import get_user_model
|
2023-11-30 07:56:21 +01:00
|
|
|
from django.contrib.auth.forms import UserCreationForm
|
2023-11-10 11:57:38 +01:00
|
|
|
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:
|
2023-11-30 08:19:55 +01:00
|
|
|
return JsonResponse({'error': 'WrongCredentials'})
|
2023-11-10 11:57:38 +01:00
|
|
|
except User.DoesNotExist:
|
2023-11-30 08:19:55 +01:00
|
|
|
return JsonResponse({'error': 'UserNotExist'})
|
2023-11-30 07:56:21 +01:00
|
|
|
|
|
|
|
@api_view(['POST'])
|
|
|
|
def register(request):
|
|
|
|
try:
|
|
|
|
email = request.POST.get('email')
|
|
|
|
username = request.POST.get('username')
|
|
|
|
password = request.POST.get('password')
|
|
|
|
|
|
|
|
payload = {
|
|
|
|
"email": email,
|
|
|
|
"username": username,
|
|
|
|
"password": password
|
|
|
|
}
|
|
|
|
|
|
|
|
user = get_user_model().objects.create_user(**payload)
|
|
|
|
print(user)
|
|
|
|
|
|
|
|
return JsonResponse({'code': 'OK'}, safe=False)
|
|
|
|
except Exception as e:
|
|
|
|
return JsonResponse({'error': 'Error while loading the data: ' + e}, safe=False)
|