如何解决Python - 如何检查 OAuth2.0 错误代码?
根据以下文档 (https://docs.microsoft.com/en-us/azure/active-directory/develop/reference-aadsts-error-codes),0Auth2.0 给出了错误的 JSON 响应。
如果用户遇到 50105 错误代码,我想捕获错误并重定向到我的 Django 应用程序中的特定页面。
目前我的代码是:
try:
token = get_token_from_code(request.get_full_path(),expected_state)
except Exception as e:
logger.error(e)
这给了我结果:
2020-12-29 14:41:10,842,842 Login ERROR (interaction_required) AADSTS50105: The signed in user '{EmailHidden}' is not assigned to a role for the application [APP ID].
Trace ID: 441e30e4-4fef-491b-99bf-4c277ae41700
Correlation ID: 3bcd16fe-f9aa-4954-8401-899a887b178c
Timestamp: 2020-12-29 14:41:10Z
我基本上想说的是:
except error_code == 50105:
logger.error(e)
return render(request,'50105_error.html')
我试过了:
except Exception as e:
logger.error(dir(e))
logger.error(e.json)
这表明 e.json.error_uri 是“https://login.microsoftonline.com/error?code=50105”,e.json.error 是“interaction_required”。文档说 error_codes 也应该包括在内,但这不是出于某种原因,否则我的页面重定向会以此为基础。
我尝试了以下方法但无济于事(生成了日志文件,但没有写入任何消息,这让我相信我的做法是错误的):
try:
token = get_token_from_code(request.get_full_path(),expected_state)
except Exception as e:
if e.json.error == "interaction_required":
logger.error("Exception test.")
return render(request,'50105_error.html')
else:
logger.error(e)
还有:
try:
token = get_token_from_code(request.get_full_path(),expected_state)
except Exception as e:
if e.json.error_uri == "https://login.microsoftonline.com/error?code=50105":
logger.error("Exception test.")
return render(request,'50105_error.html')
else:
logger.error(e)
我们将一如既往地感谢您的帮助!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。