Эх сурвалжийг харах

注销接口新增密码验证

lang 3 жил өмнө
parent
commit
5f6898e7d4

+ 41 - 14
Controller/UserController.py

@@ -3867,20 +3867,47 @@ def deleteAccount(request):
     request.encoding = 'utf-8'
     #test
     token = request.POST.get('token',None)
-    if token is None:
-        return response.json(309)
-    tko = TokenObject(token)
-    response.lang = tko.lang
-    if tko.code != 0:
-        return response.json(tko.code)
-    userID = tko.userID
-    if not userID:
-        return response.json(309)
-    delUser = Device_User.objects.filter(userID=userID)
-    if not delUser.exists():
-        return response.json(104)
-    delUser.delete()
-    return response.json(0)
+    password = request.POST.get('userPwd',None)
+    try:
+        for i in range(1, 4):
+            if i == 1:
+                # 第一次先解密
+                password = base64.b64decode(password)
+                password = password.decode('utf-8')
+                # 截去第一位,最后一位
+                password = password[1:-1]
+            if i == 2:
+                # 第2次先解密
+                password = base64.b64decode(password)
+                password = password.decode('utf-8')
+                # 去前2位,后2位
+                password = password[2:-2]
+            if i == 3:
+                # 第3次先解密
+                password = base64.b64decode(password)
+                password = password.decode('utf-8')
+                # 去前3位,后3位
+                password = password[3:-3]
+    except Exception as e:
+        return response.json(111)
+    else:
+        if token is None:
+            return response.json(309)
+        tko = TokenObject(token)
+        response.lang = tko.lang
+        if tko.code != 0:
+            return response.json(tko.code)
+        userID = tko.userID
+        if not userID:
+            return response.json(309)
+        delUser = Device_User.objects.filter(userID=userID)
+        if not delUser.exists():
+            return response.json(104)
+        userPWD = delUser.values('password')[0]
+        if not check_password(password, userPWD['password']):
+            return response.json(111)
+        delUser.delete()
+        return response.json(0)
 
 
 class InitUserInformationView(View):