社交名流google仅在本地主机上工作,而不在生产环境上工作

时间:2019-12-09 06:34:35

标签: laravel .htaccess google-oauth laravel-socialite

我使用社交名流登录了facebook和google,facebook可以工作,但是google我只能设法在本地工作,因此,例如在本地url为http://dev.thesite.com,在生产中url为https://thesite.com ,这是唯一的区别,但是当尝试在生产环境中使用Google登录时,我总是会收到invalidState异常

我注意到,当我得到InvalidStateException时,在environment and details下有:

REQUEST_URI  "/login/google/callback?state=EoWyQabT7M6wFKbPWyNJ5UD1jpLaID8v0RylvWll&code=4%2FuAFENTN62cKi-HJH7MLDFnrn8LtALjwi0zpd1Fmx688A6Vj_uSMDPk-p5EtQl_GayYKtcasjInfPjL6gfSImto8&scope=email+profile+openid+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.email&authuser=0&session_state=84bdbb33a08cc16bbaf7584540c9b97deca3dafb..5d5c&prompt=consent"

QUERY_STRING    ""

因此QUERY_STRING为空。

我的.htaccess文件将所有请求重定向到https,我相信某些.htaccess设置可以解决此问题。

2 个答案:

答案 0 :(得分:0)

有多种解决方案可解决此错误,我列出了几种解决方案:

1)转到您的www根目录,检查laravel文件config/session.php。检查会话会话Cookie域。默认配置为

'domain' => null,

使用您的网站名称进行更改:

'domain' => 'https://thesite.com,' 

php artisan cache:clearcomposer dump-autoload之后,您可以尝试登录生产站点。

2)在身份验证后创建的第二个问题中,Google无法访问您的域http://dev.thesite.com。您将必须使用生产URL https://thesite.com

进行尝试。

答案 1 :(得分:-1)

转到config/session.php并进行设置(不使用www)

'domain' => env('SESSION_DOMAIN', yourdomain.com),

和在控制台中

php artisan cache:clear
composer dump-autoload

从浏览器中删除所有cookie