مرتضی صبیحی
6 سال پیش توسط مرتضی صبیحی مطرح شد
3 پاسخ

مشکل در استفاده از socialite برای ثبت نام با گوگل در لاراول

سلام

من تو لاراول ۵.۷ اومدم از سیستم تایید ایمیل کاربر خود لاراول ۵.۷ استفاده کردم و فیلدی به نام active داخل جدول users ندارم.
همه مراحل رو درست پیش رفتم ولی به ارور بر میخورم:

route:

Route::get('login/google', 'AuthLoginController@redirectToProvider');
Route::get('login/google/callback', 'AuthLoginController@handleProviderCallback');

loginController:

  public function redirectToProvider()
    {
        return Socialite::driver('google')->redirect();
    }

    public function handleProviderCallback()
    {
        $social_user = Socialite::driver('google')->user();
        $user = User::whereEmail($social_user->getEmail())->first();

        if (!$user) {
            $user = User::create([
               'name' => $social_user->getName(),
               'email' => $social_user->getEmail(),
               'password' => bcrypt($social_user->getId()),
            ]);
        }

        auth()->loginUsingId($user->id);
        return redirect('/');
    }

ولی به این صفحه برخورد میکنم:

Image of Yaktocat


ثبت پرسش جدید
علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 6 سال پیش مطرح شد
0

@mortezasb87

سلام
پکیج Socialite بصورت پیش فرض از سیستم تعیین حالت (State Verification) روی سِشِن‌ها استفاده میکنه.
و Exception هم که شما دریافت میکنید (InvalidStateException) مربوط به همین قسمته

راه حل:

  • فایل config/session.php رو باز کنید
  • در قسمت Session Cookie Domain گزینه domain رو به دامنه سایتتون تغییر بدید.
  • اجرای دستور php artisan cache:clear
  • اجرای دستور composer dump-autoload

چنانچه بازم مشکل داشتید٬ Socialite یک متد stateless هم داره که میتونید کلا از استیت‌ها استفاده نکنید:

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

و 

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

مرتضی صبیحی
تخصص : Front-end developer
@mortezasabihi 6 سال پیش مطرح شد
0

@ali.bayat

سلام
من دارم رو local تست میکنم. در قسمت Session Cookie Domain چه مقداری را وارد کنم؟
localhost:8000?


مرتضی صبیحی
تخصص : Front-end developer
@mortezasabihi 6 سال پیش مطرح شد
0

مشکل از قرارندادن ->stateless() بود


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

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