【发布时间】:2022-01-11 16:06:58
【问题描述】:
我正在尝试在 Docker 中与 Api 一起运行 OpenIddict,Api 通过 docker-compose (api -> login) 中定义的链接与 OppenIddict 应用程序通信。我有一个在 Docker 外部运行的前端应用程序访问 Api 并通过localhost-addresses 登录。一切正常,直到 Api 使用链接地址 (login) 与登录应用程序通信,然后问题是令牌的颁发者不匹配。
在这种情况下,颁发者是 http://localhost:4000,当 OpenIddict 验证令牌时,它期待 http://login。
我尝试更改Startup 和OpenIddictServerBuilder 中的颁发者,然后问题是它更改了发现文档中使用的基地址,导致前端尝试连接到http://login。
对此的一个潜在解决方案是更改主机文件并设置网络重定向(将 login 重定向到 127.0.1.1 并将网络重定向设置为使用 localhost:4000),但这感觉像是一个过于复杂的解决方案。
IdentityServer4 也有类似的问题,但您可以在不影响基地址的情况下更改发行者。
希望我能很好地解释这个问题,任何想法都非常感谢!
【问题讨论】:
标签: docker .net-core docker-compose openiddict