hamid
3 سال پیش توسط hamid مطرح شد
1 پاسخ

لاگین بە لاراول با جیمیل موجود در دیتابیس

سلام دوستان
یک سری از کاربران رو بصورت دستەای بە دیتابیس ایمپورت میکنیم کە در یکی از فیلدها ادرس جیمیل اونها قرار دارە، حالا باید این کاربران زمانی کە بە سایت ما مراجعە میکنن، در صورتی کە اکانت جیمیل اونها از قبل در دیتابیس وجود داشتە باشە، امکان لاگین داشتە باشن و اگر جیمیل موجود نبود امکان لاگین نباشە.
1- اموزشهای زیادی در سطح نت هست کە همگی امکان ایجاد لاگین رو بر اساس شبکەهای اجتماعی از جملە گوگل میدن، اما این اموزشها جیمیل کاربر رو تصدیق میکنن و در Callback یوزر سر میسازن و اجازە لاگین میدن، در حالی کە ما از قبل کاربران رو ساختیم.

2- اکانتی کە کاربران ستفادە میکنن جیمیل بیزینس هست یعنی بجای a@gmail.com از a@company.com استفادە شدە - اما لاگین و تمامی موارد دیگە همون جیمیل هست.


ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

سلام به شما دوست عزیز.
ببینید شما وقتی میخوای با gmail لاگین کنی باید روند زیر رو طی کنی:

public function callback() {
        $google_user = Socialite::driver('google')->user();
        $user = User::where('email', $google_user->email)->first();
        if ($user) {
            auth()->loginUsingId($user->id);
        } else {
            $new_user = User::create([
               'email' => $google_user->email,
               'password' => bcrypt(Str::random(16))
            ]);
            auth()->loginUsingId($new_user->id);
        }
        return redirect()->route('panel');
    }

حالا کاری که شما میخوای انجام بدی میشه کد زیر:

public function callback() {
        $google_user = Socialite::driver('google')->user();
        $user = User::where('email', $google_user->email)->first();
        if ($user) {
            auth()->loginUsingId($user->id);
            return redirect()->route('panel');
        }
        return redirect()->route('home');
    }

امیدوارم درست متوجه منظورتون شده باشم.
موفق باشید.


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

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