我们正在使用Angular 6开发一个多租户应用程序。每个租户都使用其子域(例如client1.app.com
,client2.app.com
等)访问该应用程序。
出于身份验证的目的,我们使用IdentityServer4。我们已按照与https://identityserver4.readthedocs.io/en/release/quickstarts/7_javascript_client.html中提到的步骤相似的步骤进行操作。
一切正常-我们遇到的问题是如何在Angular客户端应用程序中指定redirect_uri
。
您很清楚,身份服务器使用redirect-uri
来返回认证结果和信息。根据{{1}}库,oidc-client
是一个字符串,我们不能指定多个值。但是,在我们的案例中,根据客户的子域,redirect_uri
会有所不同,并且必须是动态的。
有人遇到过类似情况吗?我有什么事吗?解决上述问题的任何指针都会有很大帮助。
谢谢 苏希尔
答案 0 :(得分:0)
您将需要在客户端中设置redirect_uri
以便从主机解析(使用window.location
或您要在此处使用的任何解决方案)。然后,每个租户在访问Identity Server时都会传递此URI。
在Identity Server端的Client对象中,RedirectUris
属性是一个集合,因此您应该在其中添加所有租户的重定向uri(也不要忘记PostLogoutRedirectUris
)。