我使用社交名流登录了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设置可以解决此问题。
答案 0 :(得分:0)
有多种解决方案可解决此错误,我列出了几种解决方案:
1)转到您的www
根目录,检查laravel文件config/session.php
。检查会话会话Cookie域。默认配置为
'domain' => null,
使用您的网站名称进行更改:
'domain' => 'https://thesite.com,'
在php artisan cache:clear
和composer 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