我有一个Azure应用程序网关(例如example.com),其后还有一些Azure App Services(example1.com,example2.com等)。
我正在使用python社交身份验证来验证django应用。问题是,当我单击来自example.com的登录名并将其转发到example1.com时,登录请求发生在example1.com。
如果我将OAuth回调地址指定为
example.com/complete/azuread-oauth2,
example1.com/complete/azuread-oauth2和
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后面?
答案 0 :(得分:1)
python-social-auth
Django策略使用request.build_absolute_uri(...)
方法,该方法依赖于request.get_host(...)
来检索URL应指向的当前主机。
当您的设置位于代理后面(或行为类似)时,您需要确保目标服务器知道原始主机源才能设置正确的URL。请查看get_host()
文档,该文档列出了必须设置的不同选项。