Laravel開發:如何使用Laravel Socialite和Github實現第三方登錄?

在現代 web 應用程序中,允許用戶使用他們的社交媒體帳戶快速、方便的登錄到您的網站已成為一種趨勢。雖然可以實現自己的身份驗證系統,但使用第三方身份驗證系統可以使您的應用程序更加靈活和易于使用。

在本篇文章中,我們將探討如何使用 laravel Socialite 和 Github 實現第三方登錄。Laravel Socialite 是一個 Laravel 擴展包,可以輕松地將社交媒體身份驗證集成到您的 Laravel 應用程序中。Github 是一個流行的 Git 存儲庫托管服務,它也提供了第三方身份驗證服務。

在開始之前,請確保您已經安裝了 Laravel 和 Composer。

  1. 安裝 Laravel Socialite

首先,我們需要安裝 Laravel Socialite。在終端中運行以下命令:

composer require laravel/socialite

此命令將下載并安裝 Laravel Socialite 插件。

  1. 創建 Github App

在使用 Github 登錄之前,我們需要先創建一個 Github App,以便我們能夠使用 Github 的第三方身份驗證服務。

訪問此鏈接,并登錄您的 Github 帳戶:https://github.com/settings/developers

然后,單擊“New OAuth App”按鈕并填寫表單。在“Homepage URL”中輸入您的主頁 URL,在“Authorization callback URL”中輸入回調 URL。此步驟的目的是將您的應用程序與 Github 進行連接。

  1. 配置 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。

  1. 創建 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 實現第三方身份驗證。考慮到現在的用戶喜歡快速注冊和登錄,這種方式可以讓您的應用程序更加用戶友好,也可以使您的應用程序更加靈活。

? 版權聲明
THE END
喜歡就支持一下吧
點贊13 分享