在現代 Web 應用程式中,允許用戶使用他們的社交媒體帳戶快速、方便的登入您的網站已成為一種趨勢。雖然可以實現自己的身份驗證系統,但使用第三方身份驗證系統可以使您的應用程式更加靈活和易於使用。
在本篇文章中,我們將探討如何使用 Laravel Socialite 和 Github 實現第三方登入。 Laravel Socialite 是一個 Laravel 擴充包,可以輕鬆地將社交媒體身份驗證整合到您的 Laravel 應用程式中。 Github 是一個受歡迎的 Git 儲存庫託管服務,它也提供了第三方身份驗證服務。
在開始之前,請確保您已經安裝了 Laravel 和 Composer。
- 安裝 Laravel Socialite
#首先,我們需要安裝 Laravel Socialite。在終端機中執行以下命令:
composer require laravel/socialite
此命令將下載並安裝 Laravel Socialite 外掛程式。
- 建立 Github App
在使用 Github 登入之前,我們需要先建立一個 Github App,以便我們能夠使用 Github 的第三方驗證服務。
訪問此鏈接,並登入您的 Github 帳戶:https://github.com/settings/developers
#然後,點擊“New OAuth App”按鈕並填寫表單。在「Homepage URL」中輸入您的主頁 URL,在「Authorization callback URL」中輸入回呼 URL。此步驟的目的是將您的應用程式與 Github 進行連接。
- 設定 Laravel Socialite
接下來,我們需要設定 Laravel Socialite,以便它可以與我們剛剛建立的 Github App 進行通訊。
3.1 新增Github 驅動程式
開啟config/services.php
檔案並新增以下設定:
'github' => [ 'client_id' => env('GITHUB_CLIENT_ID'), 'client_secret' => env('GITHUB_CLIENT_SECRET'), 'redirect' => 'http://your-domain.com/auth/github/callback', ],
這將建立一個名為「github 」的驅動程序,並配置客戶端ID、客戶端密鑰和回調URL。請替換“your-domain.com”為您的主頁 URL。
3.2 更新.env 檔案
開啟.env
檔案並新增以下設定:
GITHUB_CLIENT_ID=your-client-id GITHUB_CLIENT_SECRET=your-client-secret GITHUB_REDIRECT_URI=http://your-domain.com/auth/github/callback
請取代your-client-id
,your-client-secret
和your-domain.com
為您的Github App 的客戶端ID、客戶端金鑰和主頁URL。
- 建立 Github 登入路由和控制器
現在,我們可以開始實作我們的 Github 登入了。首先,我們需要建立一個Github 登入路由:
Route::get('auth/github', '[GithubController@login'); Route::get('auth/github/callback', '[GithubController@callback']);
然後,我們需要建立GithubController
控制器類,並在其中實作login
和callback
方法:
namespace AppHttpControllers; use IlluminateHttpRequest; use LaravelSocialiteFacadesSocialite; class GithubController extends Controller { public function login() { return Socialite::driver('github')->redirect(); } public function callback(Request $request) { $user = Socialite::driver('github')->user(); // do something with user data } }
在login
方法中,我們使用Socialite
facade 呼叫driver
方法指定使用Github 驅動程式,並使用redirect
方法產生一個跳到Github 登入頁面的URL。
在 callback
方法中,我們先使用 Socialite
facade 呼叫 driver
方法獲取 Github 用戶信息,然後可以進行一些邏輯處理。例如,如果該使用者是首次登錄,可以將使用者新增至使用者表中,或將其與已有使用者進行關聯。
5.測試 Github 登入
現在,我們已經完成了所有的設定和程式碼,可以測試我們的 Github 登入是否正常運作了。
在瀏覽器中輸入該位址:http://your-domain.com/auth/github。這將轉到 Github 登入頁面。在頁面上輸入您的 Github 帳戶信息,然後按一下「登入」。如果一切正常,您將被重新導向到我們在步驟 3 中配置的回調 URL。
在 callback
方法的末尾添加以下程式碼:
return view('welcome');
這將使用戶在登入成功後重定向到我們的歡迎頁面。
現在,您可以測試您的應用程式是否可以根據 Github 使用者認證登入了。
結論
在本篇文章中,我們介紹如何使用 Laravel Socialite 和 Github 實現第三方身份驗證。考慮到現在的用戶喜歡快速註冊和登錄,這種方式可以讓您的應用程式更加用戶友好,也可以使您的應用程式更加靈活。
以上是Laravel開發:如何使用Laravel Socialite和Github實現第三方登入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

Tocombatisolationandlonelinessinremotework,companiesshouldimplementregular,meaningfulinteractions,provideequalgrowthopportunities,andusetechnologyeffectively.1)Fostergenuineconnectionsthroughvirtualcoffeebreaksandpersonalsharing.2)Ensureremoteworkers

laravelispularfullull-stackDevelopmentBecapeitOffersAsAseAseAseAseBlendOfbackendEdpoperandPowerandForterFlexibility.1)ITSbackEndCapaPabilities,sightifyDatabaseInteractions.2)thebladeTemplatingEngingEngineAllolowsLows

選擇視頻會議平台的關鍵因素包括用戶界面、安全性和功能。 1)用戶界面應直觀,如Zoom。 2)安全性需重視,MicrosoftTeams提供端到端加密。 3)功能需匹配需求,GoogleMeet適合簡短會議,CiscoWebex提供高級協作工具。

最新版本的Laravel10與MySQL5.7及以上、PostgreSQL9.6及以上、SQLite3.8.8及以上、SQLServer2017及以上兼容。這些版本選擇是因為它們支持Laravel的ORM功能,如MySQL5.7的JSON數據類型,提升了查詢和存儲效率。

Laravelisanexcellentchoiceforfull-stackdevelopmentduetoitsrobustfeaturesandeaseofuse.1)ItsimplifiescomplextaskswithitsmodernPHPsyntaxandtoolslikeBladeforfront-endandEloquentORMforback-end.2)Laravel'secosystem,includingLaravelMixandArtisan,enhancespro

Laravel10,releasedonFebruary7,2023,isthelatestversion.Itfeatures:1)Improvederrorhandlingwithanewreportmethodintheexceptionhandler,2)EnhancedsupportforPHP8.1featureslikeenums,and3)AnewLaravel\Promptspackageforinteractivecommand-lineprompts.

thelatestlaravelververversionenhancesdevelopmentwith:1)簡化的inimpliticmodelbinding,2)增強EnhancedeloquentcapabibilitionswithNewqueryMethods和3)改善了supportorfortormodernphpfortornphpforternphpfeatureserslikenamedargenamedArgonedArgonsemandArgoctess,makecodingMoreftermeforefterMealiteFficeAndEnjoyaigaigaigaigaigaiganigaborabilyaboipaigyAndenjoyaigobyabory。

你可以在laravel.com/docs找到最新Laravel版本的發布說明。 1)發布說明提供了新功能、錯誤修復和改進的詳細信息。 2)它們包含示例和解釋,幫助理解新功能的應用。 3)注意新功能的潛在復雜性和向後兼容性問題。 4)定期審查發布說明可以保持更新並激發創新。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

Dreamweaver Mac版
視覺化網頁開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

MantisBT
Mantis是一個易於部署的基於Web的缺陷追蹤工具,用於幫助產品缺陷追蹤。它需要PHP、MySQL和一個Web伺服器。請查看我們的演示和託管服務。

Dreamweaver CS6
視覺化網頁開發工具