oauth2 support

This commit is contained in:
Leven
2022-12-16 11:57:40 +08:00
parent 4ed8c1e0e2
commit 6b90cd3be7
7 changed files with 114 additions and 12 deletions

View File

@@ -24,7 +24,15 @@ else:
logger = logging.getLogger('django')
def code_2_user_info(ops, request, msg_template, home_url, code):
def code_2_user_info(ops, home_url, code):
"""
临时授权码换取userinfo
"""
_, s, e = ops.get_user_detail(code=code, home_url=home_url)
return _, s, e
def code_2_user_info_with_oauth2(ops, request, msg_template, home_url, code):
"""
临时授权码换取userinfo
"""
@@ -32,7 +40,7 @@ def code_2_user_info(ops, request, msg_template, home_url, code):
# 判断 user_id 在本企业钉钉/微信中是否存在
if not _status:
context = {
'msg': '获取钉钉userid失败错误信息{}'.format(user_id),
'msg': '获取userid失败错误信息{}'.format(user_id),
'button_click': "window.location.href='%s'" % home_url,
'button_display': "返回主页"
}
@@ -40,7 +48,7 @@ def code_2_user_info(ops, request, msg_template, home_url, code):
detail_status, user_info = ops.get_user_detail_by_user_id(user_id)
if not detail_status:
context = {
'msg': '获取钉钉用户信息失败,错误信息:{}'.format(user_info),
'msg': '获取用户信息失败,错误信息:{}'.format(user_info),
'button_click': "window.location.href='%s'" % home_url,
'button_display': "返回主页"
}

View File

@@ -117,7 +117,7 @@ def index(request):
def callback_check(request):
"""
钉钉扫码回调数据之后将用户账号在AD中进行验证如果通过则返回钉钉中取出用户的union_id
扫码回调数据之后将用户账号在AD中进行验证如果通过则返回钉钉中取出用户的union_id
:param request:
:return:
"""
@@ -133,18 +133,20 @@ def callback_check(request):
'button_display': "返回主页"
}
return render(request, msg_template, context)
print('code ----- ', code)
try:
_status, user_id, user_info = code_2_user_info(_ops, request, msg_template, home_url, code)
print(user_info)
_status, user_id, user_info = code_2_user_info(_ops, home_url, code)
if not _status:
return render(request, msg_template, user_id)
# 账号是否是激活的
if get_user_is_active(user_info):
return crypto_user_id_2_cookie(user_id)
# 否则账号不存在或未激活
else:
context = {
'msg': '当前扫码的用户在钉钉中未激活或可能己离职,用户信息如下:%s' % user_info,
'msg': '当前扫码的用户未激活或可能己离职,用户信息如下:%s' % user_info,
'button_click': "window.location.href='%s'" % home_url,
'button_display': "返回主页"
}