django - python 社交身份验证更改引荐来源地址

标签 django azure azure-web-app-service python-social-auth django-socialauth

我有一个 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/

相关文章:

python - 如何在Python中通过URL下载Azure Blob存储文件?

azure - 当 Web 应用程序位于 AAD 组中时,用户 '<token-identified principal>' 登录失败

azure - 我们可以在Azure网站或虚拟机中运行windowservice或EXE吗?

django STATICFILES_DIRS 设置不应包含 STATIC_ROOT 设置

javascript - 为什么 Angular 不能再插值了?

python - 在 azure 存储上创建连接时如何处理错误

azure - 无法在Windows操作系统下的Azure中创建新的.NET Core 3.1 Web应用程序

python - 是否可以使用已删除的架构运行 makemigrations ?

mysql - 为什么在创建表后删除 django DATABASE_OPTIONS 的 "init_command set engine=INNODB"?

azure - 如何以编程方式将用户分配的托管标识分配给 Azure Web App 暂存槽?