|
@@ -11,6 +11,8 @@ from utils.http import make_json_response
|
|
|
from .models import get_user
|
|
from .models import get_user
|
|
|
from django.views.decorators.http import require_POST
|
|
from django.views.decorators.http import require_POST
|
|
|
from .decorators import login_required
|
|
from .decorators import login_required
|
|
|
|
|
+from string import printable, ascii_letters, digits
|
|
|
|
|
+import string
|
|
|
|
|
|
|
|
|
|
|
|
|
def auth_with_username_or_email(username, password):
|
|
def auth_with_username_or_email(username, password):
|
|
@@ -21,6 +23,12 @@ def auth_with_username_or_email(username, password):
|
|
|
return user
|
|
return user
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
+def check_password(password):
|
|
|
|
|
+ if set(password).isdisjoint(ascii_letters) and set(password).isdisjoint(digits):
|
|
|
|
|
+ return False
|
|
|
|
|
+ return set(password).issubset(printable) and len(password) >= 8
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
@secure_transport
|
|
@secure_transport
|
|
|
# @debug_view('password', 'email')
|
|
# @debug_view('password', 'email')
|
|
|
@require_POST
|
|
@require_POST
|
|
@@ -37,6 +45,9 @@ def register(request):
|
|
|
if User.objects.filter(email=email):
|
|
if User.objects.filter(email=email):
|
|
|
return make_json_response(code=302, error='邮箱已存在')
|
|
return make_json_response(code=302, error='邮箱已存在')
|
|
|
|
|
|
|
|
|
|
+ if not check_password(password):
|
|
|
|
|
+ return make_json_response(code=304, error='密码长度不能小于8, 必须包含数字和英文字符')
|
|
|
|
|
+
|
|
|
try:
|
|
try:
|
|
|
User.objects.create(username=username, password=password, email=email)
|
|
User.objects.create(username=username, password=password, email=email)
|
|
|
print('注册成功')
|
|
print('注册成功')
|
|
@@ -97,7 +108,7 @@ def logout(request):
|
|
|
|
|
|
|
|
|
|
|
|
|
@secure_transport
|
|
@secure_transport
|
|
|
-@debug_view('email')
|
|
|
|
|
|
|
+# @debug_view('email')
|
|
|
@require_POST
|
|
@require_POST
|
|
|
def send_email_verification_code(request):
|
|
def send_email_verification_code(request):
|
|
|
data = request.POST
|
|
data = request.POST
|
|
@@ -121,7 +132,7 @@ def send_email_verification_code(request):
|
|
|
|
|
|
|
|
|
|
|
|
|
@secure_transport
|
|
@secure_transport
|
|
|
-@debug_view()
|
|
|
|
|
|
|
+# @debug_view()
|
|
|
@require_POST
|
|
@require_POST
|
|
|
def check_token(request):
|
|
def check_token(request):
|
|
|
data = request.POST
|
|
data = request.POST
|
|
@@ -141,13 +152,16 @@ def check_token(request):
|
|
|
|
|
|
|
|
|
|
|
|
|
@secure_transport
|
|
@secure_transport
|
|
|
-@debug_view('password')
|
|
|
|
|
|
|
+# @debug_view('password')
|
|
|
@require_POST
|
|
@require_POST
|
|
|
def reset_password(request):
|
|
def reset_password(request):
|
|
|
data = request.POST
|
|
data = request.POST
|
|
|
username = data.get('username')
|
|
username = data.get('username')
|
|
|
password = data.get('password')
|
|
password = data.get('password')
|
|
|
token = data.get('token')
|
|
token = data.get('token')
|
|
|
|
|
+
|
|
|
|
|
+ if not check_password(password):
|
|
|
|
|
+ return make_json_response(code=304, error='密码长度不能小于8, 必须包含数字和英文字符')
|
|
|
try:
|
|
try:
|
|
|
user = User.objects.get(username=username)
|
|
user = User.objects.get(username=username)
|
|
|
except:
|
|
except:
|