生产服务器Laravel 7上的Google Socialite问题

时间:2020-10-21 19:49:38

标签: laravel laravel-7 laravel-socialite

我不知道该怎么办才能解决这个问题。我已经研究和测试了各种解决方案3天。我需要能够帮助我的人呼吁团结。

在localhost中,它对我来说很完美。但是在生产中,我无法获得解决方案的结果。我将逐步详细介绍,看看有头脑的人是否发现了错误的地方

路线

Route::get('login/{driver}', [LoginController::class, 'redirectToProvider']);
Route::get('login/{driver}/callback', [LoginController::class, 'handleProviderCallback']);

LoginController

//Socialite
public function 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');
    }

}

public function handleProviderCallback(Request $request, $driver)
{
    if($request->get('error')){
        return redirect()->route('login')->with('info', 'Ocurrió un error, vuelva a intentarlo más tarde.');
    }

    $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;
}

Session.php

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

错误

/home/brooklyn/Sistema/app/Http/Controllers/Auth/LoginController.php(82): Laravel \ Socialite \ Two \ AbstractProvider-> user()

{“ exception”:“ [对象] (Laravel \ Socialite \ Two \ InvalidStateException(代码:0):在 /home/brooklyn/Sistema/vendor/laravel/socialite/src/Two/AbstractProvider.php:209)

我删除了服务器,并在另一个Apache服务器帐户上重新创建了所有Google Auth凭据,但我遇到了同样的问题。我尝试了各种解决方案,但找不到解决方案。 请帮帮我。

0 个答案:

没有答案