胎嘎侯
延續昨日印出授權登入資訊後,談到我們可能需要用戶資料來進行網站分析。
不過在此之前,先用Laravel方便的套件來產生會員系統,請執行以下命令。
composer require laravel/ui --dev
php artisan ui vue --auth
接著生成User資料庫欄位
php artisan migrate
回到首頁,點選進入Login頁面發現只有Login的按鈕,但考量到使用者可能會因為種種原因不想註冊網站會員,因此提供Github登入的第3方服務讓使用者選擇,所以此處還要新增一個Github的登入按鈕。
打開/resources/views/auth/路徑下的login.blade.php新增。
由於前端的畫面筆者還不太懂,因此參考教學影片中作者drehimself提供的程式碼,從第60行到73行來製作按鈕。
程式碼插入之後重整網頁,成功出現!
回到SocialController,加入以下程式碼
public function handleProviderCallback()
{
//利用第3方登入與github溝通,取得使用者訊息
$user = Socialite::driver('github')->user();
//first()只需要從數據庫表中檢索一行,比對資料表與獲取的$user訊息
$account = User::where('email',$user->email)->first();
//如果用戶為空,則新增資料到資料表中,取決於你需要哪些使用者訊息
if(!$account){
User::create([
'email'=>$user->email,
'name'=>$user->nickname,
'password'=>bcrypt('githubtest')
]);
}
// 登入並且「記住」使用者...
Auth::login($account);
//回到首頁
return redirect('/');
我們重回http://127.0.0.1:8000/login ,點選 。
跳出下圖,點選Authorize
成功登入並導回首頁,右上角顯示,利用Github的身分順利登入網站。
登入的同時,當初註冊Github的信箱會收到通知[GitHub] A third-party OAuth application has been added to your account。
資料庫有什麼變化呢?
登入用戶資料也順利入庫了,就可以拿來做更多分析囉
最後,這邊要提醒如果是要測試授權登入的頁面,請務必到Developer settings按下Revoke all user token呈現為0位user,不然會一直報錯qq
一個利用Laravel Socialite-簡易實現Github第3方登入實作完成,到此也告一段落了。在此筆者認為還有很多未說或說不深入的地方,實在有些抱歉,OAuth實在是個很有趣,但同時也非常需要花時間探究的主題,日後我會更努力來探究它。
不管哪個教學都可能會踩坑,這次我也踩了不少,只能說文章多看看多試試,會找到適合自己的方式,也謝謝那些願意分享經驗讓我汲取的前輩們。
努力不停歇,我們明天見~
如文章有任何問題,不吝賜教,歡迎歡迎。