我有一个Azure应用程序网关(比如example.com),后面我有一些Azure应用程序服务(example1.com,example2.com等)。
我正在使用python social auth来验证我的django应用程序。问题是当我从example.com点击登录并将该请求转发到example1.com时,登录请求发生在example1.com上。
如果我将OAuth回调地址指定为
example.com/complete/A组read-OAuth2,
example1.com/complete/azuread-oauth2,和
example2.com/complete/A组read-OAuth2,
它不起作用,社会认证给了我错误:
raise AuthStateForbidden(self)
social_core.exceptions.AuthStateForbidden: Wrong state parameter given.
这可能是因为referrer网站是example.com,但实际请求来自example1.com,但我不确定。有没有办法解决它,以便重定向不会发生在example1.com,我可以隐藏example.com.com在example.com后面?
python-social-auth
Django策略使用request.build_absolute_uri(...)
方法,该方法依赖于request.get_host(...)
以检索URL应指向的当前主机。
当您的设置位于代理(或类似行为)后面时,您需要确保目标服务器知道原始主机源以便设置正确的URL。查看get_host()
文档,它列出了为实现这一目标必须设置的不同选项。