Socialite Google redirect_uri_mismatch

Socialite Google redirect_uri_mismatch

我正在尝试使用 socialite 通过 google 登录,我的 facebook 登录工作正常所以我的 google 应用程序出现问题,求助!!!

 'google' => [
    'client_id' =>      'app-key',
    'client_secret' =>  'app-secret',
    'redirect' =>       'http://www.shoptizer.com/callback/google',
],

我找到了这个linkhttps://blog.damirmiladinov.com/laravel/laravel-5.2-socialite-google-login.html

来自本教程:

Occasionally it happens that google require some time to apply client configuration If you get an error message redirect_uri_missmatch wait couple of minutes and it should work normally.

同时更改重定向 uri:

'google' => [
   'client_id' =>      'app-key',
   'client_secret' =>  'app-secret',
   'redirect' =>       'https://www.shoptizer.com/callback/google',
],

如果您的应用是由 https 提供的,您必须在 google api 和重定向回调中匹配您的 http 方案。

还有一点要记住,即使您在 google 控制台中正确定义了重定向,但您通过

动态更改了 redirectUrl,Socialite 也会提供 uri_mismatch_error
return Socialite::with('google')->redirectUrl($redirect_url)->redirect();

所以请注意您在接收响应时还需要定义

Socialite::driver('google')->redirectUrl($redirect_url)->stateless()->user();

其中 $redirect_url 是您的自定义重定向 url。 在 google 将您重定向到正确的位置之后,但即便如此,Socialite 也会在最后检查它。

问题出在默认 url 上,您必须在两种情况下更改它:重定向之前和获取用户数据之前。

不要这样做:

return Socialite::driver('google')->redirectUrl($yourredirecturl)->redirect();

这样做:

config()->set('services.google.redirect', $yourredirecturl);
return Socialite::driver('google')->redirect();

访问用户数据时,请执行以下操作:

config()->set('services.google.redirect', $yourredirecturl);
$user = Socialite::driver('google')->user();