|
|
@@ -17,32 +17,28 @@ def auth_with_username_or_email(username, password):
|
|
|
return user
|
|
|
|
|
|
|
|
|
-def get_user(request):
|
|
|
- username = request.data.get('username', '')
|
|
|
- token = request.data.get('token', '')
|
|
|
- try:
|
|
|
- user = User.objects.get(username=username)
|
|
|
- if user.check_token(token):
|
|
|
- user.tokens.get(token=token)
|
|
|
- return user
|
|
|
- except:
|
|
|
- return None
|
|
|
- return None
|
|
|
-
|
|
|
-
|
|
|
@api_view(['POST'])
|
|
|
def register(request):
|
|
|
username = request.data.get('username', '')
|
|
|
password = request.data.get('password', '')
|
|
|
email = request.data.get('email', '')
|
|
|
+ if not username or not password or email:
|
|
|
+ return JsonResponse({'code': 303, 'error': '用户名/密码/邮箱不能为空'})
|
|
|
+ else:
|
|
|
+ print(request.POST)
|
|
|
+ if User.objects.filter(username=username):
|
|
|
+ return JsonResponse({'code': 301, 'error': '用户名已存在'})
|
|
|
|
|
|
- try:
|
|
|
- User.objects.create(username=username, password=password, email=email)
|
|
|
- print('注册成功')
|
|
|
- return JsonResponse({'code': 200})
|
|
|
- except Exception as e:
|
|
|
- print(e)
|
|
|
- return JsonResponse({'code': 303, 'error': str(e)}, status=303)
|
|
|
+ if User.objects.filter(email=email):
|
|
|
+ return JsonResponse({'code': 302, 'error': '邮箱已存在'})
|
|
|
+
|
|
|
+ try:
|
|
|
+ User.objects.create(username=username, password=password, email=email)
|
|
|
+ print('注册成功')
|
|
|
+ return JsonResponse({'code': 200})
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return JsonResponse({'code': 400, 'error': str(e)})
|
|
|
|
|
|
|
|
|
@api_view(['POST'])
|
|
|
@@ -57,7 +53,7 @@ def login(request):
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
print('用户名或密码错误')
|
|
|
- return JsonResponse({'code': 303, 'error': '用户名或密码错误'}, status=303)
|
|
|
+ return JsonResponse({'code': 303, 'error': '用户名或密码错误'})
|
|
|
|
|
|
print(f'token = {token}')
|
|
|
if user.check_token(token):
|
|
|
@@ -79,10 +75,6 @@ def login(request):
|
|
|
user_token.token = new_token
|
|
|
user_token.save()
|
|
|
|
|
|
- if hasattr(request, '_user'):
|
|
|
- print('设置reqeust._user')
|
|
|
- request.user = user
|
|
|
-
|
|
|
print('登录成功')
|
|
|
print(f'new_token = {new_token}')
|
|
|
return JsonResponse({'code': 200, 'token': new_token})
|
|
|
@@ -90,47 +82,79 @@ def login(request):
|
|
|
|
|
|
@api_view(['POST'])
|
|
|
def logout(request):
|
|
|
- username = request.data.get('username', '')
|
|
|
- token = request.data.get('token', '')
|
|
|
+ username = request.data.get('username')
|
|
|
+ token = request.data.get('token')
|
|
|
try:
|
|
|
user = User.objects.get(username=username)
|
|
|
- try:
|
|
|
- user_token = user.tokens.get(token=token)
|
|
|
- user_token.delete()
|
|
|
- except Exception as e:
|
|
|
- print(e)
|
|
|
- print('token无效')
|
|
|
- return JsonResponse({'code': 200})
|
|
|
+ except Exception as e:
|
|
|
+ print('用户不存在')
|
|
|
+ return JsonResponse({'code': 302, 'error': '用户不存在'})
|
|
|
+ try:
|
|
|
+ user_token = user.tokens.get(token=token)
|
|
|
+ user_token.delete()
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
- return JsonResponse({'code': 303, 'error': str(e)}, status=303)
|
|
|
+ print('token无效')
|
|
|
+ return JsonResponse({'code': 200})
|
|
|
|
|
|
|
|
|
@api_view(['POST'])
|
|
|
-def reset_password(request):
|
|
|
- username = request.data.get('username', '')
|
|
|
- password = request.data.get('password', '')
|
|
|
+def send_email_verification_code(request):
|
|
|
+ username = request.data.get('username')
|
|
|
+ if not username:
|
|
|
+ return JsonResponse({'code': 301, 'error': '用户名不能为空'})
|
|
|
try:
|
|
|
user = User.objects.get(username=username)
|
|
|
- token = request.data.get('token')
|
|
|
- if token:
|
|
|
- print(f'token={token}')
|
|
|
- if user.check_token(token):
|
|
|
- # 重置密码
|
|
|
- print("验证码有效")
|
|
|
- user.password = password
|
|
|
- user.save()
|
|
|
- return JsonResponse({'code': 200})
|
|
|
- else:
|
|
|
- print("验证码无效")
|
|
|
- return JsonResponse({'code': 303, 'error': '验证码错误'}, status=303)
|
|
|
- else:
|
|
|
- # 发送验证码
|
|
|
- token = user.make_token()
|
|
|
- print(f'')
|
|
|
- print(f'发送验证码 email = {user.email} token = {token}')
|
|
|
- user.send_email('ST网盘重置密码验证码', token)
|
|
|
- return JsonResponse({'code': 200})
|
|
|
+ except:
|
|
|
+ print('用户不存在')
|
|
|
+ return JsonResponse({'code': 302, 'error': '用户不存在'})
|
|
|
+ try:
|
|
|
+ # 发送验证码
|
|
|
+ token = user.make_token()
|
|
|
+ print(f'发送验证码 email = {user.email} token = {token}')
|
|
|
+ user.send_email('ST网盘重置密码验证码', token)
|
|
|
+ return JsonResponse({'code': 200})
|
|
|
except Exception as e:
|
|
|
print(e)
|
|
|
- return JsonResponse({'code': 303, 'error': str(e)}, status=303)
|
|
|
+ return JsonResponse({'code': 303, 'error': str(e)})
|
|
|
+
|
|
|
+
|
|
|
+@api_view(['POST'])
|
|
|
+def check_token(request):
|
|
|
+ username = request.data.get('username')
|
|
|
+ token = request.data.get('token')
|
|
|
+ if not username:
|
|
|
+ return JsonResponse({'code': 301, 'error': '用户名不能为空'})
|
|
|
+ try:
|
|
|
+ user = User.objects.get(username=username)
|
|
|
+ except:
|
|
|
+ print('用户不存在')
|
|
|
+ return JsonResponse({'code': 302, 'error': '用户不存在'})
|
|
|
+ if token and user.check_token(token):
|
|
|
+ return JsonResponse({'code': 200})
|
|
|
+ else:
|
|
|
+ return JsonResponse({'code': 303, 'error': '验证码无效'})
|
|
|
+
|
|
|
+
|
|
|
+@api_view(['POST'])
|
|
|
+def reset_password(request):
|
|
|
+ username = request.data.get('username')
|
|
|
+ password = request.data.get('password')
|
|
|
+ token = request.data.get('token')
|
|
|
+ if not username:
|
|
|
+ return JsonResponse({'code': 301, 'error': '用户名不能为空'})
|
|
|
+ try:
|
|
|
+ user = User.objects.get(username=username)
|
|
|
+ except:
|
|
|
+ print('用户不存在')
|
|
|
+ return JsonResponse({'code': 302, 'error': '用户不存在'})
|
|
|
+ print(f'token={token}')
|
|
|
+ if token and user.check_token(token):
|
|
|
+ # 重置密码
|
|
|
+ print("验证码有效")
|
|
|
+ user.password = password
|
|
|
+ user.save()
|
|
|
+ return JsonResponse({'code': 200})
|
|
|
+ else:
|
|
|
+ print("验证码无效")
|
|
|
+ return JsonResponse({'code': 303, 'error': '验证码无效'})
|