我正在尝试使用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等的函数
任何线索/提示?
答案 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。