32

我正在尝试使用 Codeigniter spark ( http://getsparks.org/packages/oauth2/versions/HEAD/show ) 允许用户使用 fb 和 google 登录到我的 php 站点。

我的本地开发站点(在 wampserver 上)称为 mysite.dev,为此我有一个 etc/hosts 文件,例如:

127.0.0.1       mysite.dev

Facebook 登录工作非常好。但是当我尝试使用谷歌登录时,谷歌抱怨:redirect_uri 的参数值无效:不允许非公共域:http: //mysite.dev/index.php/oauth2/session/google 其中 oauth2 是我的控制器,会话是我指定 fb/google 等的功能

任何线索/提示?

4

5 回答 5

20

我通过为域添加一个主机文件记录来解决这个问题,其中 dev 部分位于前面而不是末尾(我通常也会这样做):

/etc/hosts

127.0.0.1 localhost.mydomain.com

/etc/apache 虚拟主机

ServerName mydomain.com.localhost
ServerAlias localhost.mydomain.com

然后告诉谷歌使用:

http://localhost.mydomain.com/index.php/oauth2/session/google
于 2016-06-16T00:22:08.620 回答
8

当您在 Google API 控制台中为 Web 应用程序创建客户端 ID 时,您可以添加 allowed Redirect URIs。它也接受localhosturl 和其他。

于 2013-08-28T23:00:28.690 回答
5

Google API 控制台不允许“mysite.dev”。

于 2014-06-16T17:35:09.677 回答
5

添加

127.0.0.1 localhost.mydomain.com

到我的hosts文件和

http://localhost.mydomain.com/oauth2callback

“授权重定向 URI”对我有用

于 2017-03-09T19:58:20.103 回答
0

如果您只想在您的开发站点上运行一次OAuth 过程,有一个快速的解决方法。

登录到您的 Google Cloud Console,访问 APIs & Services ▸ Credentials ▸ OAuth 2.0 Client IDs ▸ Authorized Redirect URIs 和具有以下值的新 URI:

http://localhost/index.php/oauth2/session/google

然后使用localhost而不是mysite.dev作为域导航到您的开发站点。在 localhost 上完成 OAuth 过程。Google 现在应该接受您的返回 URI。成功授权后,您可以返回使用 mysite.dev。

于 2020-10-21T12:42:14.120 回答