|
@@ -623,6 +623,76 @@ class refreshTokenView(TemplateView):
|
|
|
return response.json(444, 'token')
|
|
|
|
|
|
|
|
|
+class refreshTokenViewV3(TemplateView):
|
|
|
+ @method_decorator(csrf_exempt)
|
|
|
+ def dispatch(self, *args, **kwargs):
|
|
|
+ return super(refreshTokenViewV3, self).dispatch(*args, **kwargs)
|
|
|
+
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ content_type = request.META.get('CONTENT_TYPE', None)
|
|
|
+ if content_type == 'application/json':
|
|
|
+ request_dict = json.loads(request.body.decode('utf-8'))
|
|
|
+ else:
|
|
|
+ request_dict = request.POST
|
|
|
+ return self.validation(request_dict)
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.GET
|
|
|
+ return self.validation(request_dict)
|
|
|
+
|
|
|
+ def validation(self, request_dict):
|
|
|
+ token = request_dict.get('token', None)
|
|
|
+ lang = request_dict.get('lang', None)
|
|
|
+ language = request_dict.get('language', None)
|
|
|
+ password = request_dict.get('userPwd', None)
|
|
|
+
|
|
|
+ response = ResponseObject(lang)
|
|
|
+ if not token:
|
|
|
+ return response.json(444, 'token')
|
|
|
+
|
|
|
+ if lang is None:
|
|
|
+ lang = language
|
|
|
+
|
|
|
+ try:
|
|
|
+ # token检验
|
|
|
+ tko = TokenObject(token)
|
|
|
+ if tko.code != 0:
|
|
|
+ return response.json(tko.code)
|
|
|
+ userID = tko.userID
|
|
|
+ tko.lang = lang
|
|
|
+
|
|
|
+ if password: # 检验密码
|
|
|
+ password = password.strip()
|
|
|
+ # 解密
|
|
|
+ for i in range(1, 4):
|
|
|
+ password = base64.b64decode(password)
|
|
|
+ password = password.decode('utf-8')
|
|
|
+ password = password[i:-i]
|
|
|
+ user_qs = Device_User.objects.filter(userID=userID).values('password')
|
|
|
+ if not user_qs.exists():
|
|
|
+ return response.json(104)
|
|
|
+ if not check_password(password, user_qs[0].password):
|
|
|
+ return response.json(111)
|
|
|
+
|
|
|
+ res = tko.refresh() # 更新refresh_token
|
|
|
+
|
|
|
+ # 更新用户扩展信息语言
|
|
|
+ user_ex_qs = UserExModel.objects.filter(userID_id=userID)
|
|
|
+ if user_ex_qs.exists():
|
|
|
+ nowTime = int(time.time())
|
|
|
+ update_dict = {
|
|
|
+ 'updTime': nowTime,
|
|
|
+ 'region': lang
|
|
|
+ }
|
|
|
+ user_ex_qs.update(**update_dict)
|
|
|
+ return response.json(0, res)
|
|
|
+ except Exception as e:
|
|
|
+ print(e)
|
|
|
+ return response.json(500, repr(e))
|
|
|
+
|
|
|
+
|
|
|
# 获取验证码
|
|
|
class v2authCodeView(TemplateView):
|
|
|
|