微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Laravel 7中登录社交名Google的问题

如何解决Laravel 7中登录社交名Google的问题

我通过Google进行的身份验证工作正常,并且突然开始在生产中出现以下错误(在localhost中,一切继续正常工作)。在进行此查询之前,我看了很多东西,尝试了网络上的所有选项,但找不到解决方案。

错误:调试

Laravel \ Socialite \ Two \ InvalidStateException

enter image description here

在LoginController中,我在以下行中收到错误

$userSocialite = Socialite::driver($driver)->user();

在服务器日志中:

local.ERROR:{“ exception”:“ [对象](Laravel \ Socialite \ Two \ InvalidStateException(代码:0):位于/ home / brooklyn / Sistema / vendor / laravel / socialite / src / Two / AbstractProvider。 PHP:209)[stacktrace]

LoginController:

//Socialite

公共函数redirectToProvider($ driver) { $ drivers = ['google'];

if(in_array($driver,$drivers)){

    return Socialite::driver($driver)->redirect();

}else{
    return redirect()->route('login')->with('info',$driver . ' no es una aplicación valida para poder loguearse');
}

}

公共函数handleProviderCallback(请求$ request,$ driver) { if($ request-> get('error')){ 返回redirect()-> route('login')-> with('info','Ocurrióun error,vuelva a intentarlomástarde。'); }

$userSocialite = Socialite::driver($driver)->user();


$social_profile = SocialProfile::where('social_id',$userSocialite->getId())
                               ->where('social_name',$driver)->first();

if(!$social_profile){

    $user = User::where('email',$userSocialite->getEmail())->first();
    if(!$user){
        $user = User::create([
            'name' => $userSocialite->user['given_name'],'apellido' => $userSocialite->user['family_name'],'email' => $userSocialite->getEmail(),'permiso' => 'USUARIO','tipo_usuario' => 'PARTIculaR'
        ]);
    }

    SocialProfile::create([
        'user_id' => $user->id,'social_id' => $userSocialite->getId(),'social_name' => $driver,'social_avatar' => $userSocialite->getAvatar()
    ]);

}

auth()->login($social_profile->user);

return redirect()->route('panel');

/* dd($user->user['given_name']); */

// $user->token;

}

执行的测试没有效果

1次测试

在Localhost中,如果我进行以下修改

在session.PHP

我对此进行了更改:

'domain' => env('SESSION_DOMAIN',null),

收件人

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

在本地我得到与生产相同的错误。在生产中,错误仍然存​​在。

2个测试

添加到LoginController

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

我收到以下错误

GuzzleHttp \ Exception \ ClientException客户端错误:POST https://www.googleapis.com/oauth2/v4/token导致400错误的请求响应:{“ error”:“ invalid_request”,“ error_description”:“缺少必需的参数:code”}

我需要有人启发我,我还能做些什么。请任何想法将受到欢迎! 谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。