shopid.ir ->open source online shop solutions
لاگین با گوگل در لاراول
ساخت لاگین با گوگل توی لاراول ساده تر از اونیه که فکرشو بکنید فقط یکم باید دقت کنید
کار با نصب laravel/socialite شروع میشه
با این پکیج میتونید با linkedin, google, github, gitlab لاگین بسازید
نصبش با کامپوزره :
composer require laravel/socialite
مشاهده آموزش کامل توی یوتوب (۲۱ دقیقه) : https://www.youtube.com/watch?v=05mL6f4xCAA
سورس نمونه توی گیتهاب : https://github.com/shopid-dev/laravel-socialite
بعدش باید توی config/services.php
اینو اد کنید :
'github' => [
'client_id' => env('GITHUB_CLIENT_ID'),
'client_secret' => env('GITHUB_CLIENT_SECRET'),
'redirect' => 'http://example.com/callback-url',
],
مقادیر client_id و client_secret باید از گوگل بگیرید
redirect هم آدرس سایت و مسیریه که وقتی از گوگل برمیگردید باید ست کنید
گرفتن client_id و client_secret از گوگل
مشاهده فیلم این قسمت توی یوتوب
این قسمتش تقریبا سخت ترین قسمتش شاید باشه چون اینجا یکم تحریمه ولی مشکلی بابت لاگین کردن نداره فقط گرفتنش یکم سخته
فقط توی گوگل بزنید google developer console و وارد سایتش بشید
اگه پروژه ای نداشته باشید باید یدونه بسازید
اکه قبلا consent screen کانفیگ نکرده باشید اینجا میگه برید کانفیگ کنید
اینجا External بزنید و Create بزنید
اینجا همه چیزایی که میخواد وارد کنید البته خیلیش آپشنال هست
آخرشم SAVE AND CONTINUE بزنید
و برید توی قسمت Credentials
بعدش از اون منوی بالا روی CREATE CREDENTIALS + کلیک کنید
و بزنید روی OAuth client ID
بعدش Web application انتخاب کنید
اینجا هم موارد خواسته شده پر کنید
بعدش میریم توی سورسمون و اون redirect میاریم
میزنیم توی Authorized redirect URIs و Create میزنیم
و در آخر client_id و client_secret میاد !
و میریم ثبتش میکنیم
حالا یه روت میسازیم که وقتی میریم توش بره تو گوگل به همین سادگی !
use Laravel\Socialite\Facades\Socialite;
//.
//.
Route::get("/login", function () {
return Socialite::driver('google')->redirect();
});
و روت بازگشتمون هم میسازیم :
به این صورت که با firstOrCreate روی مدل User اگه کاربر قبلا ثبت نام نبود رجیسترش میکنیم با یه پسورد رندم ولی اگه بود انتخابش میکنیم و در آخر میدیمش به Auth::login و احراز هویت تکمیل میشه !
Route::get("/google-login", function () {
$s_user = Socialite::driver('google')->user();
$user = User::firstOrCreate(
['email' => $s_user->email],
[
'name' => $s_user->name,
'password' => Hash::make(Str::random(8))
]
);
Auth::login($user, true);
echo "hello ".Auth::user()->name;
});
مطلبی دیگر از این انتشارات
نصب لاراول روی لوکال هاست لینوکسی
مطلبی دیگر از این انتشارات
لاراول Valet
مطلبی دیگر از این انتشارات
راه اندازی داکر برای پروژه های لاراولی با laradock