【问题标题】:Using Google oauth in a deployment在部署中使用 Google oauth
【发布时间】:2019-02-10 02:49:11
【问题描述】:

我已经设置了一个 ASP.Net Core 项目以使用来自 this tutorial 的 Google OAuth 登录

我使用地址“https://localhost:5001/signin-google”的设置“Web 服务器”创建了一个客户端 ID 和密码,并按照教程中的说明向应用程序公开了密码。我有一个基本视图,它只是显示“使用 Google 登录”按钮并允许身份验证(在 localhost 上验证工作)所需的最低 HTML 和 JS。

我在本地网络上的 Raspberry Pi 上的 docker 容器中创建了一个部署。当我使用 Google 登录按钮导航到视图并单击它时,出现

错误
Error: invalid_request

Permission denied to generate login hint for target domain.

在错误详细信息中,它将重定向 URL 指定为:

redirect_uri=storagerelay://http/x.x.x.x:8000?id=auth572720

其中 x.x.x.x 是我们本地网络上 Pi 的地址

我假设这是因为客户端期望重定向 URL 为“https://localhost..etc”但得到的是“http://x.x.x.x”。

我不确定如何解决这个问题,看来我可能需要创建另一个令牌才能在我的 Raspberry Pi 上启用身份验证(例如,使用重定向地址“http://x.x.x.x.etc/signin-google”创建另一个“网络服务器”OAuth 登录但是当我尝试这个时,我得到一个错误“必须是顶级私有域”。

总而言之,这非常令人沮丧,如果能提供任何帮助,我将不胜感激。

【问题讨论】:

    标签: asp.net-core google-oauth


    【解决方案1】:

    无需创建新凭据,只需将新的重定向 URL 添加到现有凭据即可。

    重定向 URL 域必须是 TLD。选择 localhost.mydomain.com 之类的内容,然后在 /etc/hosts 文件中添加一个条目以将 localhost.mydomain.com 解析为 x.x.x.x

    【讨论】:

    • 如果我在树莓派上的 docker 容器中运行它,我会更改容器中的主机而不是 pi,对吗?
    • 重定向 URL 作为重定向传递给浏览器。因此,您需要在浏览器解析其域名的任何地方更改它。如果您拥有该域并且能够更改您自己的 DNS 记录,那么最好的方法是添加一条 A 记录,以便为所有设备解析。另请记住,您可以配置任意数量的已声明重定向 URL,例如 localhost1localhost2 等来处理您的各种测试配置变化。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-12-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-29
    • 2014-10-12
    • 2019-05-19
    • 2010-10-12
    相关资源
    最近更新 更多