我有一个 Azure 应用程序网关(假设为 example.com),在其后面有一些 Azure 应用服务(example1.com、example2.com 等)。
我正在使用 python 社交身份验证来验证我的 django 应用程序。问题是,当我单击从 example.com 登录时,它将该请求转发到 example1.com,登录请求是从 example1.com 发生的。
如果我将 OAuth 回调地址指定为
example.com/complete/azuread-oauth2,
example1.com/complete/azuread-oauth2, and
example2.com/complete/azuread-oauth2,
它不起作用,社交身份验证给了我错误:
raise AuthStateForbidden(self)
social_core.exceptions.AuthStateForbidden: Wrong state parameter given.
这可能是因为引荐网站是 example.com,但实际请求来自 example1.com,尽管我不确定。有没有办法修复它,以便 example1.com 不会发生重定向,并且我可以将 example1.com 隐藏在 example.com 后面?
最佳答案
python-social-auth
Django 策略使用 request.build_absolute_uri(...)
方法,这取决于 request.get_host(...)
为了检索当前主机,URL 应指向。
当您的设置位于代理后面(或表现类似)时,您需要确保目标服务器知道原始主机源,以便设置正确的 URL。检查 get_host()
文档,它列出了必须设置才能实现这一点的不同选项。
关于django - python 社交身份验证更改引荐来源地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55252061/