我正在使用Laravel Socialite在网站上添加Facebook连接按钮.有时候,我在回调时遇到了这个错误:
exception 'Laravel\Socialite\Two\InvalidStateException'
in /example/vendor/laravel/socialite/src/Two/AbstractProvider.php:161
Run Code Online (Sandbox Code Playgroud)
我不知道这是什么意思,也没有发现任何关于这个错误的信息.真正的问题是它似乎是一个随机的例外(不明白它为什么会发生).那么这个错误意味着什么,以及如何避免它?
它似乎与Laravel 5在AbstractProvider.php中引发InvalidStateException的问题不同,因为在我的情况下它是随机的.
我正在将Google Oauth2添加到Rails应用程序中,但无法超越早期阶段.
我已经设置了一个应用程序,并定义了客户端ID和秘密.但我得到了 Invalid parameter value for redirect_uri: Non-public domains not allowed: http://localhost/path/to/callback
这是什么意思?这是因为我正在测试本地开发环境吗?
谢谢你的任何想法.
编辑
这可能是因为应用程序的URI与发送URI不同.但是,当我去谷歌并尝试授权我的开发应用程序的路径时,我得到了OAuth2 redirect is invalid.这是使用本地托管应用程序的限制吗?
编辑2
我生成的请求看起来像这样:
https://accounts.google.com/o/oauth2/auth?response_type=code&client_id=###########&redirect_uri=http%3A%2F%2Fmyapp.dev%2Fusers%2Fauth%2Fgoogle_oauth2%2Fcallback&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fuserinfo.profile&approval_prompt=&access_type=offline
Run Code Online (Sandbox Code Playgroud)
它是否正确.我用client_id尝试了这个,包括并排除了.apps.googleusercontent.com部分.似乎都没有用.
我网站上的一些用户正在体验Laravel\Socialite\Two\InvalidStateException.我已经采取了对Laravel Socialite的回复中概述的步骤:InvalidStateException并且无法解决问题.只有一小部分用户似乎遇到了这种情况.
我有2个fpm/nginx docker容器坐在HAProxy负载均衡器后面.
当我尝试使用google或fb登录时,我只在本地计算机上出现此错误.我几乎100%确定我的服务和session.php设置正确.但是,唉,我们在这......
我的services.php谷歌设置:
'google' =>[
'client_id'=> env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => "http://". env('DOMAIN'). "/login/google/callback",
],
Run Code Online (Sandbox Code Playgroud)
我的会议
'domain'=> 'local.mysite.com'
Run Code Online (Sandbox Code Playgroud)