|
@@ -1584,7 +1584,7 @@ class wxPerfectView(TemplateView):
|
|
|
return response.json(717)
|
|
|
access_token = res_json['access_token']
|
|
|
openid = res_json['openid']
|
|
|
-
|
|
|
+
|
|
|
if access_token and openid:
|
|
|
info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token={access_token}&openid={openid}'.format(
|
|
|
access_token=access_token, openid=openid)
|
|
@@ -1987,3 +1987,64 @@ class UnbundingWXView(TemplateView):
|
|
|
return response.json(173)
|
|
|
else:
|
|
|
return response.json(tko.code)
|
|
|
+
|
|
|
+
|
|
|
+class alexaAuthView(TemplateView):
|
|
|
+ def post(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ # request_dict = json.loads(request.body.decode('utf-8'))
|
|
|
+ request_dict = request.POST
|
|
|
+ response = ResponseObject()
|
|
|
+ return self.validates(request_dict, response)
|
|
|
+
|
|
|
+ def get(self, request, *args, **kwargs):
|
|
|
+ request.encoding = 'utf-8'
|
|
|
+ request_dict = request.GET
|
|
|
+ response = ResponseObject()
|
|
|
+ return self.validates(request_dict, response)
|
|
|
+
|
|
|
+ def validates(self, request_dict, response):
|
|
|
+ username = request_dict.get('userName', None)
|
|
|
+ password = request_dict.get('userPwd', None)
|
|
|
+ if not username or not password:
|
|
|
+ return response.json(111)
|
|
|
+ username = username.strip()
|
|
|
+ password = password.strip()
|
|
|
+ data_valid = DataValid()
|
|
|
+ if data_valid.email_validate(username):
|
|
|
+ return self.do_email_login(username, password, response)
|
|
|
+ elif data_valid.mobile_validate(username):
|
|
|
+ return self.do_phone_login(username, password, response)
|
|
|
+ elif data_valid.name_validate(username):
|
|
|
+ return self.do_name_login(username, password, response)
|
|
|
+ else:
|
|
|
+ return response.json(107)
|
|
|
+
|
|
|
+ def do_email_login(self, email, password, response):
|
|
|
+ user_qs = Device_User.objects.filter(Q(username=email) | Q(userEmail=email))
|
|
|
+ return self.valid_login(user_qs, password, response)
|
|
|
+
|
|
|
+ def do_phone_login(self, phone, password, response):
|
|
|
+ user_qs = Device_User.objects.filter(Q(phone=phone) | Q(username=phone), is_active=True, user_isValid=True)
|
|
|
+ return self.valid_login(user_qs, password, response)
|
|
|
+
|
|
|
+ def do_name_login(self, username, password, response):
|
|
|
+ user_qs = Device_User.objects.filter(Q(username=username) | Q(phone=username) | Q(userEmail=username), is_active=True, user_isValid=True)
|
|
|
+ return self.valid_login(user_qs, password, response)
|
|
|
+
|
|
|
+ def valid_login(self, user_qs, password, response):
|
|
|
+ if not user_qs.exists():
|
|
|
+ return response.json(104)
|
|
|
+ users = user_qs.values('userID', 'password')[0]
|
|
|
+ if not check_password(password, users['password']):
|
|
|
+ return response.json(111)
|
|
|
+ userID = users['userID']
|
|
|
+ uid_qs = Device_Info.objects.filter(userID_id=userID, isExist=1).values('UID', 'NickName')
|
|
|
+ uid_arr = []
|
|
|
+ for uid_q in uid_qs:
|
|
|
+ uid_arr.append({'uid': uid_q['UID'], 'nick': uid_q['NickName']})
|
|
|
+ res = {
|
|
|
+ 'userID': userID,
|
|
|
+ 'uid_arr': uid_arr
|
|
|
+ }
|
|
|
+ return response.json(0, res)
|