使Google Oauth通过子域在本地工作



我正在使用ASP.NET身份开发一个网站,该身份将与子域一起使用,这些子域使用此处的某些信息来识别客户端,但我在本地工作了,但我无法获得它可以与Oauth一起工作。

例如,如果我要使用https://localhost:44301并尝试使用Google登录,那么一切都很好。在我的Google控制台中,我在"授权JavaScript Origins"下有https://localhost:44301。和https://localhost:44301/signin-google"授权重定向乌里斯"。但是当我去https://foo.localhost:44301时,Google会回复:

错误:invalid_request

redirect_uri的无效参数值:不允许非公共域:https://foo.localhost:44301/signin-google

当您尝试登录时。我可以将https://foo.localhost:44301添加到"授权JavaScript Origins"中。在Google Console中,但它不会让我在授权重定向UIR下添加https://foo.localhost:44301/signin-google,因为它会抱怨:

无效的重定向:https://foo.localhost:44301/signin-google必须以公共顶级域(例如.com或.org)结束

其他一些问题和答案表明,将所有子域重定向到OAuth的一个域,但理想情况下,我想每个子域保持登录。因此,如果您使用Google将其签名到foo.mydomain.com,它将与bar.mydomain.com分开,如果我必须将两者重定向到同一单个域,我认为这将无效Google中的项目。

Google,通常其他OAuth2/OIDC提供商将支持重定向到子域。您的具体问题是,您似乎正在尝试使用特殊使用域名列表(RFC6761)的localhost的子域,并且似乎Google对这些域名也有其他约束。

但是,这不是真正的限制

如果您需要为本地开发工作,则可以使用localtest.me,允许您设置自己喜欢的子域(foo.localtest.mebar.localtest.me),同时仍确保域域分解为本地计算机(127.0.0.1)。这应该阻止Google抱怨它...

相关内容

  • 没有找到相关文章

最新更新