1
0
mirror of https://github.com/haiwen/seahub.git synced 2025-09-19 10:26:17 +00:00

Merge pull request #2186 from haiwen/oauth_access_token

[oauth] Some oauth server only support access token in request uri
This commit is contained in:
zheng xie
2018-06-29 11:44:07 +08:00
committed by GitHub

View File

@@ -35,6 +35,7 @@ if ENABLE_OAUTH:
TOKEN_URL = getattr(settings, 'OAUTH_TOKEN_URL', '')
USER_INFO_URL = getattr(settings, 'OAUTH_USER_INFO_URL', '')
SCOPE = getattr(settings, 'OAUTH_SCOPE', '')
ACCESS_TOKEN_IN_URI = getattr(settings, 'OAUTH_ACCESS_TOKEN_IN_URI', False)
# Used for init an user for Seahub.
PROVIDER_DOMAIN = getattr(settings, 'OAUTH_PROVIDER_DOMAIN', '')
@@ -113,7 +114,7 @@ def oauth_callback(request):
redirect_uri=REDIRECT_URL)
try:
session.fetch_token(TOKEN_URL, client_secret=CLIENT_SECRET,
token = session.fetch_token(TOKEN_URL, client_secret=CLIENT_SECRET,
authorization_response=request.get_full_path())
if session._client.__dict__['token'].has_key('user_id'):
@@ -122,7 +123,11 @@ def oauth_callback(request):
user_id = session._client.__dict__['token']['user_id']
user_info_resp = session.get(USER_INFO_URL + '?user_id=%s' % user_id)
else:
user_info_resp = session.get(USER_INFO_URL)
user_info_url = USER_INFO_URL
if ACCESS_TOKEN_IN_URI:
code = request.GET.get('code')
user_info_url = USER_INFO_URL + '?access_token=%s&code=%s' % (token['access_token'], code)
user_info_resp = session.get(user_info_url)
except Exception as e:
logger.error(e)
@@ -131,7 +136,7 @@ def oauth_callback(request):
}, context_instance=RequestContext(request))
def format_user_info(user_info_resp):
logger.info('user info resp: %s' % user_info_resp.text)
error = False
user_info = {}
user_info_json = user_info_resp.json()