Laravel Socialite یک پکیج لاراول برای احراز هویت از طریق سرویسهای مختلف مثل گوگل، فیسبوک، گیتهاب و غیره هست. این پکیج میتواند فرایند ورود کاربران از طریق این سرویسها رو خیلی سادهتر کنه.
🚀 Laravel Socialite
برای احراز هویت کاربران از طریق سرویسهای اجتماعی (مثل گوگل، فیسبوک و غیره)
🧰 نصب Socialite
1. نصب پکیج Socialite:
اولین قدم نصب پکیج laravel/socialite است:
⚙️ پیکربندی Socialite
2. تنظیمات در .env
برای احراز هویت با سرویسهای مختلف، باید کلیدها و رازهای API رو از سرویسدهندهها (مثل گوگل یا فیسبوک) بگیرید و در فایل .env قرار بدید.
مثال برای گوگل و فیسبوک:
3. اضافه کردن به config/services.php
در فایل config/services.php سرویسهای گوگل و فیسبوک رو پیکربندی میکنیم.
🚀 استفاده از Socialite برای احراز هویت
1. ایجاد روتر برای هدایت به صفحه احراز هویت
در فایل routes/web.php برای هر سرویس یک مسیر برای هدایت کاربر به صفحه احراز هویت اضافه میکنیم.
مسیر برای گوگل:
مسیر برای فیسبوک:
💬 توضیح کد:
-
اولین مسیر: کاربر رو به صفحه احراز هویت گوگل یا فیسبوک هدایت میکنه.
-
دومین مسیر (Callback): بعد از اینکه کاربر احراز هویت کرد، به این مسیر باز میگرده. اینجا اطلاعات کاربر از سرویس (مثل گوگل یا فیسبوک) دریافت میشه و میتونید اون رو ذخیره کنید یا کاربر رو لاگین کنید.
🔐 ذخیره اطلاعات کاربر
زمانی که کاربر از طریق گوگل یا فیسبوک وارد شد، دادههای مربوط به اون کاربر مثل نام، ایمیل و تصویر پروفایل رو میتونید دریافت کنید:
1. ذخیره یا بهروز رسانی اطلاعات در پایگاه داده:
🧑💻 نکات مهم:
-
حذف یا عدم ذخیره اطلاعات: اگر بخواهید فقط ورود انجام بشه و اطلاعات کاربر رو ذخیره نکنید، میتونید فقط از متد
Auth::login()استفاده کنید. -
عدم ذخیره پسورد: وقتی از Socialite استفاده میکنید، هیچ وقت پسورد کاربر ذخیره نمیشود. این فقط برای ورود به سیستم هست.
-
استفاده از
findOrCreate: بهجای نوشتن کدهای زیاد برای ذخیره و بهروز رسانی، میتونید یک متد خاص بسازید که این کارها رو به صورت اتوماتیک انجام بده.
📋 جمعبندی
| سرویس | مرحله |
|---|---|
| نصب پکیج Socialite | composer require laravel/socialite |
پیکربندی در .env | ذخیره کلیدها و مقادیر در .env |
پیکربندی در services.php | افزودن مقادیر به config/services.php |
| تعریف مسیرها | استفاده از Socialite::driver('google')->redirect() |
| دریافت اطلاعات کاربر | Socialite::driver('google')->user() |