⏳۵۰٪ تخفیف فقط تا پایان جشنواره؛ بعدش همه‌چیز به قیمت قبل برمی‌گرده!

مشاهده دوره‌ها
ثانیه
دقیقه
ساعت
روز
راکت
حل شده

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

3 پاسخ

سلام

من تو لاراول ۵.۷ اومدم از سیستم تایید ایمیل کاربر خود لاراول ۵.۷ استفاده کردم و فیلدی به نام 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

ثبت پرسش جدید

پاسخ‌ها

3
علی بیات
علی بیات
@ali.bayat

تخصص: توسعه دهنده ارشد وب

بهترین پاسخ

@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();
مرتضی صبیحی
مرتضی صبیحی
@mortezasabihi

تخصص: Front-end developer

@ali.bayat

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

مرتضی صبیحی
مرتضی صبیحی
@mortezasabihi

تخصص: Front-end developer

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

شاید پاسخ شما همین‌جا باشد

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

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