Google OAuth2在本地开发服务器上不工作-PHP Codeigniter spark

Google OAuth2在本地开发服务器上不工作-PHP Codeigniter spark,php,codeigniter,oauth-2.0,google-login,Php,Codeigniter,Oauth 2.0,Google Login,我正在尝试使用Codeigniter spark ( ) 允许用户使用fb和google登录我的php站点 我的本地开发站点(位于wampserver上)名为mysite.dev,我有一个etc/hosts文件,如: 127.0.0.1 mysite.dev Facebook登录工作绝对正常。但当我尝试登录谷歌时,谷歌抱怨: 重定向uri的参数值无效:不允许非公共域: 其中oauth2是我的控制器,session是我指定fb/google等的函数 任何线索/提示?当您在Googl

我正在尝试使用Codeigniter spark ( ) 允许用户使用fb和google登录我的php站点

我的本地开发站点(位于wampserver上)名为mysite.dev,我有一个etc/hosts文件,如:

127.0.0.1       mysite.dev
Facebook登录工作绝对正常。但当我尝试登录谷歌时,谷歌抱怨: 重定向uri的参数值无效:不允许非公共域: 其中oauth2是我的控制器,session是我指定fb/google等的函数


任何线索/提示?

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

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

我通过添加域的主机文件记录来解决这个问题,其中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
添加

127.0.0.1 localhost.mydomain.com
到我的
主机
文件和

http://localhost.mydomain.com/oauth2callback

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

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

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

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

Google接受本地主机,但不接受自定义域,例如。somecustomtopleveldomain这是一种耻辱,因为如果您有多个web项目,您通常会指定自定义域名,如project1。这是一个不起作用的问题。这里也有类似的问题,任何好的解决方法,因为我不能使用localhost,而是需要一个自定义域名,如:project.company。我不想把所有开发人员的主机名都改成project.company.composible,这对我来说很有用。在Laravel中,您还需要将其添加到Homestead.yaml文件中,如so
-map:localhost.mydomain.com to:/home/vagrant/your path here/mydomain/public
,然后设置