def callback(request):
response = OrderedDict()
oas = OAuth2Session(request.session['client_id'],
redirect_uri=request.session['redirect_uri'])
host = settings.HOSTNAME_URL
if not(host.startswith("http://") or host.startswith("https://")):
host = "https://%s" % (host)
auth_uri = host + request.get_full_path()
token = oas.fetch_token(request.session['token_uri'],
client_secret=request.session['client_secret'],
authorization_response=auth_uri)
request.session['token'] = token
response['token_response'] = OrderedDict()
for k, v in token.items():
if k != "scope":
response['token_response'][k] = v
else:
response['token_response'][k] = ' '.join(v)
userinfo = oas.get(request.session['userinfo_uri']).json()
response[request.session['userinfo_uri']] = userinfo
request.session['patient'] = userinfo['patient']
response['oidc_discovery_uri'] = host + \
reverse('openid-configuration')
response['fhir_metadata_uri'] = host + \
reverse('fhir_conformance_metadata')
response['test_page'] = host + reverse('test_links')
return JsonResponse(response)
评论列表
文章目录