|
@@ -1445,7 +1445,14 @@ class wxAuthSignView(TemplateView):
|
|
access_token = res_json['access_token']
|
|
access_token = res_json['access_token']
|
|
openid = res_json['openid']
|
|
openid = res_json['openid']
|
|
if access_token and openid:
|
|
if access_token and openid:
|
|
- user_extend_qs = UserOauth2Model.objects.filter(authOpenID=openid, authType=1)
|
|
|
|
|
|
+ info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token={access_token}&openid={openid}'.format(
|
|
|
|
+ access_token=access_token, openid=openid)
|
|
|
|
+ res_req = requests.get(url=info_url)
|
|
|
|
+ res_req.encoding = res_req.apparent_encoding
|
|
|
|
+ res_json = res_req.json()
|
|
|
|
+ print(res_json)
|
|
|
|
+ unionID = res_json['unionid']
|
|
|
|
+ user_extend_qs = UserOauth2Model.objects.filter(unionID=unionID, authType=1)
|
|
if user_extend_qs.exists():
|
|
if user_extend_qs.exists():
|
|
# 如果用户绑定过则直接登录
|
|
# 如果用户绑定过则直接登录
|
|
userID = user_extend_qs[0].userID_id
|
|
userID = user_extend_qs[0].userID_id
|
|
@@ -1454,15 +1461,9 @@ class wxAuthSignView(TemplateView):
|
|
return self.do_login(user_qs, response)
|
|
return self.do_login(user_qs, response)
|
|
else:
|
|
else:
|
|
# 如果用户为绑定过则创建用户并进行登录返回token
|
|
# 如果用户为绑定过则创建用户并进行登录返回token
|
|
- info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token={access_token}&openid={openid}'.format(
|
|
|
|
- access_token=access_token, openid=openid)
|
|
|
|
- res_req = requests.get(url=info_url)
|
|
|
|
- res_req.encoding = res_req.apparent_encoding
|
|
|
|
- res_json = res_req.json()
|
|
|
|
- print(res_json)
|
|
|
|
userID = CommonService.getUserID(getUser=False)
|
|
userID = CommonService.getUserID(getUser=False)
|
|
nickname = res_json['nickname'] + '_' + CommonService.RandomStr(4)
|
|
nickname = res_json['nickname'] + '_' + CommonService.RandomStr(4)
|
|
- return self.do_register(userID, nickname, response, appBundleID, openid)
|
|
|
|
|
|
+ return self.do_register(userID, nickname, response, appBundleID, unionID)
|
|
else:
|
|
else:
|
|
return response.json(414, 'access_token,openid')
|
|
return response.json(414, 'access_token,openid')
|
|
else:
|
|
else:
|
|
@@ -1501,7 +1502,7 @@ class wxAuthSignView(TemplateView):
|
|
user_qs.update(last_login=now_time, online=True)
|
|
user_qs.update(last_login=now_time, online=True)
|
|
return response.json(0, res)
|
|
return response.json(0, res)
|
|
|
|
|
|
- def do_register(self, userID, nickname, response, appBundleId, openid):
|
|
|
|
|
|
+ def do_register(self, userID, nickname, response, appBundleId, unionID):
|
|
data_valid = DataValid()
|
|
data_valid = DataValid()
|
|
if data_valid.name_validate(userID) is not True:
|
|
if data_valid.name_validate(userID) is not True:
|
|
return response.json(105)
|
|
return response.json(105)
|
|
@@ -1521,7 +1522,7 @@ class wxAuthSignView(TemplateView):
|
|
updTime=nowTime,
|
|
updTime=nowTime,
|
|
userID_id=users.userID,
|
|
userID_id=users.userID,
|
|
authType=1,
|
|
authType=1,
|
|
- authOpenID=openid
|
|
|
|
|
|
+ unionID=unionID
|
|
)
|
|
)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
errorInfo = traceback.format_exc()
|
|
errorInfo = traceback.format_exc()
|
|
@@ -1585,13 +1586,21 @@ class wxPerfectView(TemplateView):
|
|
return response.json(717)
|
|
return response.json(717)
|
|
access_token = res_json['access_token']
|
|
access_token = res_json['access_token']
|
|
openid = res_json['openid']
|
|
openid = res_json['openid']
|
|
|
|
+
|
|
if access_token and openid:
|
|
if access_token and openid:
|
|
- user_has_bind = UserOauth2Model.objects.filter(authOpenID=openid)
|
|
|
|
|
|
+ info_url = 'https://api.weixin.qq.com/sns/userinfo?access_token={access_token}&openid={openid}'.format(
|
|
|
|
+ access_token=access_token, openid=openid)
|
|
|
|
+ res_req = requests.get(url=info_url)
|
|
|
|
+ res_req.encoding = res_req.apparent_encoding
|
|
|
|
+ res_json = res_req.json()
|
|
|
|
+ print(res_json)
|
|
|
|
+ unionID = res_json['unionid']
|
|
|
|
+ user_has_bind = UserOauth2Model.objects.filter(unionID=unionID)
|
|
if not user_has_bind.exists():
|
|
if not user_has_bind.exists():
|
|
user_oauth2_qs = UserOauth2Model.objects. \
|
|
user_oauth2_qs = UserOauth2Model.objects. \
|
|
filter(userID_id=userID, authType=1)
|
|
filter(userID_id=userID, authType=1)
|
|
if user_oauth2_qs.exists():
|
|
if user_oauth2_qs.exists():
|
|
- user_oauth2_qs.update(authOpenID=openid)
|
|
|
|
|
|
+ user_oauth2_qs.update(unionID=unionID)
|
|
return response.json(0)
|
|
return response.json(0)
|
|
else:
|
|
else:
|
|
try:
|
|
try:
|
|
@@ -1601,7 +1610,7 @@ class wxPerfectView(TemplateView):
|
|
updTime=nowTime,
|
|
updTime=nowTime,
|
|
userID_id=userID,
|
|
userID_id=userID,
|
|
authType=1,
|
|
authType=1,
|
|
- authOpenID=openid)
|
|
|
|
|
|
+ unionID=unionID)
|
|
except Exception as e:
|
|
except Exception as e:
|
|
return response.json(424, repr(e))
|
|
return response.json(424, repr(e))
|
|
else:
|
|
else:
|
|
@@ -1968,7 +1977,7 @@ class UnbundingWXView(TemplateView):
|
|
if tko.code == 0:
|
|
if tko.code == 0:
|
|
userID = tko.userID
|
|
userID = tko.userID
|
|
user_oauth2_qs = UserOauth2Model.objects.filter(
|
|
user_oauth2_qs = UserOauth2Model.objects.filter(
|
|
- ~Q(authOpenID='') & Q(userID_id=userID) & Q(authType=auth_type))
|
|
|
|
|
|
+ ~Q(unionID='') & Q(userID_id=userID) & Q(authType=auth_type))
|
|
if user_oauth2_qs.exists():
|
|
if user_oauth2_qs.exists():
|
|
user_qs = Device_User.objects.filter(phone='', userEmail='', userID=userID)
|
|
user_qs = Device_User.objects.filter(phone='', userEmail='', userID=userID)
|
|
if user_qs.exists():
|
|
if user_qs.exists():
|