محمدرضا
2 سال پیش توسط محمدرضا مطرح شد
4 پاسخ

احراز هویت گوگل در لاراول

سلام
دوستان کسی میتونه راهنمایی کنه؟میخوام احراز هویت با گوگل کنم به ارور زیر بر میخورم
Laravel\Socialite\Two\InvalidStateException
این روتینگ

Route::get('/login_google_press',[\App\Http\Controllers\GoogleAuthController::class,'redirectToProvider'])->name('login_google_press');

Route::get('/google-login',[\App\Http\Controllers\GoogleAuthController::class,'check'])->name('google-login');

کنترلر ها

 public function check()
    {

            $googleUser = Socialite::driver('google');
            $googleUser = $googleUser->user();
            dd($googleUser);
            $existUser = User::where('email', $googleUser->email)->first();

            if ($existUser) {
                Session::flash('google_login','وارد شدی');
                Auth::loginUsingId($existUser->id);
                return redirect('login');

            } else {
                Session::flash('google_login','شما حساب کاربری با این ایمیل ندارید،لطفا به ادمین مراجعه کنید');
               return redirect('login');
            }

    }
}

اینجا ارور میده

        //dd(Socialite::driver('google')->user());

ثبت پرسش جدید
محمدرضا
@heydari1200 2 سال پیش مطرح شد
0

سلام
الحمدلله مشکل حل شد...
https://stackoverflow.com/questions/30660847/laravel-socialite-invalidstateexception
داخل هاست اصلی درست کار میکنه...


مهدی مشایخی
تخصص : برنامه نویس پایتون - ماشین لرن...
@MahdiMashayekhi 2 سال پیش مطرح شد
0

سلام
احتمال زیاد به علت csrf token هست و تایید نمیشه این رو در هدتون بنويسید

<meta name="csrf-token" content="{{ csrf_token() }}">

و سپس این دو فانکشن رو پیاده سازی کنید

public function redirectToProvider()
{
    return Socialite::driver('google')
        ->with(['state' => csrf_token()])
        ->redirect();
}
public function check()
{
    try {
        $googleUser = Socialite::driver('google')->stateless()->user();
    } catch (\Exception $e) {
        return redirect('/login_google_press');
    }

    $existUser = User::where('email', $googleUser->email)->first();

    if ($existUser) {
        Session::flash('google_login','وارد شدی');
        Auth::loginUsingId($existUser->id);
        return redirect('login');
    } else {
        Session::flash('google_login','شما حساب کاربری با این ایمیل ندارید،لطفا به ادمین مراجعه کنید');
        return redirect('login');
    }
}

محمدرضا
@heydari1200 2 سال پیش مطرح شد
0

ممنون از توجهتون
متاسفانه این خط اجرا نمیشه باز هم

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

محمدرضا
@heydari1200 2 سال پیش آپدیت شد
0

لطفا یه نفر راهنمایی کنه...
مقدار user رو null بر میگردونه که به این خطا میخوره


محمدرضا
@heydari1200 2 سال پیش مطرح شد
0

سلام
الحمدلله مشکل حل شد...
https://stackoverflow.com/questions/30660847/laravel-socialite-invalidstateexception
داخل هاست اصلی درست کار میکنه...


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام