# /pong/game/views.py from django.shortcuts import render def index(request): return render(request, 'index.html') from django.http import JsonResponse from django.contrib.auth.models import User from django.contrib.auth import authenticate from django.views.decorators.csrf import csrf_exempt import json import uuid @csrf_exempt def register_user(request): if request.method == 'POST': data = json.loads(request.body) username = data.get('username') password = data.get('password') if not User.objects.filter(username=username).exists(): user = User.objects.create_user(username=username, password=password) token = get_or_create_token(user) return JsonResponse({'registered': True, 'token': token}) return JsonResponse({'registered': False, 'error': 'User already exists'}) return JsonResponse({'error': 'Invalid request method'}, status=400) @csrf_exempt def check_user_exists(request): if request.method == 'POST': data = json.loads(request.body) username = data.get('username') if User.objects.filter(username=username).exists(): return JsonResponse({'exists': True}) return JsonResponse({'exists': False}) return JsonResponse({'error': 'Invalid request method'}, status=400) @csrf_exempt def authenticate_user(request): if request.method == 'POST': try: data = json.loads(request.body) username = data.get('username', '') password = data.get('password', '') user = authenticate(username=username, password=password) if user is not None: token = get_or_create_token(user) return JsonResponse({'authenticated': True, 'token': token, 'user_id': user.id}) else: return JsonResponse({'authenticated': False}, status=401) except Exception as e: return JsonResponse({'error': str(e)}, status=500) else: return JsonResponse({'error': 'Method not allowed'}, status=405) def get_or_create_token(user): if not user.auth_token: while True: token = str(uuid.uuid4()) if not User.objects.filter(auth_token=token).exists(): user.auth_token = token user.save() break return user.auth_token