首頁  >  文章  >  php框架  >  Laravel開發:如何使用Laravel Socialite和Github實現第三方登入?

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

PHPz
PHPz原創
2023-06-13 19:09:00874瀏覽

在現代 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-idyour-client-secretyour-domain.com 為您的Github App 的客戶端ID、客戶端金鑰和主頁URL。

  1. 建立 Github 登入路由和控制器

現在,我們可以開始實作我們的 Github 登入了。首先,我們需要建立一個Github 登入路由:

Route::get('auth/github', '[GithubController@login');
Route::get('auth/github/callback', '[GithubController@callback']);

然後,我們需要建立GithubController 控制器類,並在其中實作logincallback 方法:

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn