谷歌OAuth2没有在本地开发服务器上工作-PHP代码点火器火花


Google OAuth2 not working on local development server - PHP Codeigniter spark

我正在尝试使用Codeigniter火花(http://getsparks.org/packages/oauth2/versions/HEAD/show)允许用户使用fb和谷歌登录我的php网站。

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

127.0.0.1       mysite.dev

脸书登录绝对可以。但当我尝试使用谷歌登录时,谷歌抱怨道:redirect_uri的参数值无效:不允许使用非公共域:http://mysite.dev/index.php/oauth2/session/google其中oauth2是我的控制器,session是我指定fb/google等的函数

有线索吗?

我为域添加了一个主机文件记录,其中dev部分在前面而不是结尾(我通常也这样做):

/etc/主机

127.0.0.1 localhost.mydomain.com

/etc/apachevhost

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

然后告诉谷歌使用:

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

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

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

添加

127.0.0.1 localhost.mydomain.com

到我的hosts文件和

http://localhost.mydomain.com/oauth2callback

到"授权重定向URI"对我有效

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

登录您的谷歌云控制台,访问API&服务⁩ ▸资格证书⁩ ▸OAuth 2.0客户端ID⁩ ▸授权重定向URI和具有以下值的新URI:

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

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