我正在尝试使用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.