from django.shortcuts import render from django.http import HttpResponse, JsonResponse from django.contrib.auth import get_user_model, authenticate, login from django.views.decorators.csrf import csrf_exempt from django_token.models import Token import datetime from .models import VerifyCode from .utils import generate_code, send_sms_code def index(request): username = request.GET.get('username') password = request.GET.get('password') print(username, password) return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) def status_500(request): return HttpResponse(status=500) def status_401(request): return HttpResponse(status=401) @csrf_exempt def polls_login(request): if request.method == 'POST': phone = request.POST.get('phone') password = request.POST.get('password') UserModel = get_user_model() user = UserModel.objects.filter(first_name=phone).first() if not user: return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) u = authenticate(request, username=user.username, password=password) if u is not None: login(request, u) token = Token.objects.get_or_create(user=u) result = dict() profile = u.userprofile_set.first() result['phone'] = u.first_name result['token'] = token if profile: result['name'] = profile.name result['gender'] = profile.sex result['thumbnail'] = profile.image.path result['organization'] = profile.organization.name return JsonResponse({'status': 'success', 'message': result}) else: return JsonResponse({'status': 'error', 'message': '用户名或密码错误'}) else: return HttpResponse(status=405) @csrf_exempt def send_code(request): if request.method == 'GET': return HttpResponse(status=405) phone = request.POST.get('phone') category = request.POST.get('category', 0) if not phone: return JsonResponse({'status': 'error', 'message': '手机号不正确'}) exist_code = VerifyCode.objects.filter(phone=phone, category=category).first() if exist_code and exist_code.in_progress(): return JsonResponse({'status': 'error', 'message': '验证码使用中'}) code = generate_code() now = datetime.datetime.now() after_10mins = now + datetime.timedelta(minutes=10) response = send_sms_code(phone, code) result = response.decode('utf8') if "OK" in result: VerifyCode.objects.create(code=code, phone=phone, category=category) return JsonResponse({'status': 'success'}) return JsonResponse({'status': 'error', 'message': '验证码发送失败'}) @csrf_exempt def register_step_one(request): if request.method == 'GET': return HttpResponse(status=405) phone = request.POST.get('phone') code = request.POST.get('code') exist_code = VerifyCode.objects.filter(phone=phone, code=code, category=0).exist() if exist_code.in_progress(): return JsonResponse({'status': 'success', 'message': {phone: phone}}) else: return JsonResponse({'status': 'error', 'message': '验证码超时,请重发'}) @csrf_exempt def register_step_two(request): if request.method == 'GET': return HttpResponse(status=405) phone = request.POST.get('phone') name = request.POST.get('name') gender = request.POST.get('gender') organization = request.POST.get('organization') # create user return JsonResponse({'status': 'success', 'message': '注册成功'}) @csrf_exempt def password_recover_step_one(request): if request.method == 'GET': return HttpResponse(status=405) phone = request.POST.get('phone') code = request.POST.get('code') exist_code = VerifyCode.objects.filter(phone=phone, code=code, category=1).exist() if exist_code.in_progress(): return JsonResponse({'status': 'success', 'message': {phone: phone}}) else: return JsonResponse({'status': 'error', 'message': '验证码超时,请重发'}) @csrf_exempt def password_recover_step_two(request): if request.method == 'GET': return HttpResponse(status=405) phone = request.POST.get('phone') password = request.POST.get('password') password_confirm = request.POST.get('password_confirm')