I am trying to use login with facebook in laravel 5 using Socialize.
Here is my route file code.
Route::get('fb', function ($facebook = "facebook")
{
$provider = \Socialize::with($facebook);
if (Input::has('code'))
{
$user = $provider->user();
return var_dump($user);
} else {
return $provider->scopes(['public_profile','user_friends'])->redirect();
}
});
login is success and I get the code but time of get $provider->user()
I get the error.
InvalidStateException in AbstractProvider.php line 161
I wasn't comfortable with just commenting out code that signalled an error (as in @Dipesh Shihora's answer), so I dug a little further. I discovered that the error is caused (in my case at least) by a problem with sessions.
My dev server is set up according to the instructions given in this answer. Basically, I am "spoofing" Google by using a callback URL which looks like a publicly-accessible address.
The InvalidStateException
problem was appearing for me because I was visiting my login page at http://localhost/login
and redirecting to Google's login page, which then returned me to http://myapp.example.com/callback
. The problem is that the session key is stored in a cookie - it was originally a cookie for http://localhost
, but when I redirected to a different URL, the cookie (and hence the session key) was inaccessible. Thus, the session state
value was non-existent after the update and the exception was thrown.
The solution? Ensure that all my browsing on the dev machine was done at http://myapp.example.com
and not at http://localhost
.
http://nhagiaodich.com/dang-nhap
It work on my website , just call ->stateless() before get user
Socialite::driver('facebook')->stateless()->user()
Socialite::driver('google')->stateless()->user()
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With