Google OAuth2无法在本地开发服务器上运行 - PHP Codeigniter spark

时间:2013-08-28 22:09:44

标签: php codeigniter oauth-2.0 google-login

我正在尝试使用Codeigniter火花 (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等的函数

任何线索/提示?

5 个答案:

答案 0 :(得分:12)

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

的/ etc /主机

127.0.0.1 localhost.mydomain.com

/ etc / apache vhost

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

然后告诉谷歌使用:

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

答案 1 :(得分:5)

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

答案 2 :(得分:4)

Google API控制台不允许使用'mysite.dev'。

答案 3 :(得分:2)

添加

127.0.0.1 localhost.mydomain.com

到我的hosts文件和

http://localhost.mydomain.com/oauth2callback

到“授权重定向URI”为我工作

答案 4 :(得分:0)

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

登录到您的Google Cloud Console,访问API和服务▸凭证▸OAuth 2.0客户端ID▸授权重定向URI和具有以下值的新URI:

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

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