better error handling in login fn

This commit is contained in:
Martin Quarda 2024-10-09 14:45:29 +02:00
parent a9fb9adaa7
commit 9e030c6431
2 changed files with 7 additions and 3 deletions

View File

@ -17,7 +17,7 @@ Including another URLconf
from django.contrib import admin
from django.urls import path
from alkatorapi.views import (
register_racer, register_racer,
register_user, register_racer,
login, logout,
results, photos,
payment_result, payment_state,
@ -27,7 +27,7 @@ from alkatorapi.views import (
urlpatterns = [
path('admin/', admin.site.urls),
path('api/register_user', register_racer),
path('api/register_user', register_user),
path('api/register_racer', register_racer),
path('api/login', login),
path('api/login_status', login_status),

View File

@ -6,6 +6,7 @@ from django.contrib.admin.views.decorators import staff_member_required
from django.contrib.auth.models import User as DjangoUser
from django.contrib.auth import authenticate, login
from django.core.mail import send_mail, mail_admins
from django.utils.datastructures import MultiValueDictKeyError
from datetime import date, datetime, timedelta
from urllib.parse import parse_qs
import requests
@ -47,7 +48,10 @@ def register_user(request):
@csrf_exempt
def login(request):
user = authenticate(request, username=request.POST['email'], password=request.POST['password'])
try:
user = authenticate(request, username=request.POST['email'], password=request.POST['password'])
except MultiValueDictKeyError:
return HttpResponse('{"reason":"Nezadané jméno nebo heslo!"}', status=400, content_type='application/json')
if user is not None:
login(request, user)
return HttpResponse('{"success":"Úspěšně přihlášen uživatel '+ user.email + '"}', content_type='application/json')