ホームページ  >  記事  >  PHPフレームワーク  >  Laravel 開発: Laravel Socialite と Github を使用してサードパーティ ログインを実装するにはどうすればよいですか?

Laravel 開発: Laravel Socialite と Github を使用してサードパーティ ログインを実装するにはどうすればよいですか?

PHPz
PHPzオリジナル
2023-06-13 19:09:00817ブラウズ

最新の Web アプリケーションでは、ユーザーがソーシャル メディア アカウントを使用して 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 アプリの作成

Github にログインする前に、Github のサードパーティ認証サービスを使用できるように、まず Github アプリを作成する必要があります。

このリンクにアクセスして Github アカウントにログインします: https://github.com/settings/developers

次に、[新しい OAuth アプリ] ボタンをクリックしてフォームに記入します。 「ホームページ URL」にホームページ URL を入力し、「認証コールバック URL」にコールバック URL を入力します。このステップの目的は、アプリケーションを Github に接続することです。

  1. Laravel Socialite の構成

次に、作成した Github アプリと通信できるように Laravel Socialite を構成する必要があります。

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-secret、および your-domain.com は、Github アプリのクライアント ID、クライアント シークレット、ホームページ URL です。

  1. Github ログイン ルートとコントローラーを作成する

これで、Github ログインの実装を開始できます。まず、Github ログイン ルートを作成する必要があります:

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

次に、GithubController コントローラー クラスを作成し、logincallback# を実装する必要があります。 it ## メソッド:

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 ファサードを使用して driver メソッドを呼び出し、 Github ドライバーを使用し、 redirect メソッドを使用して、Github ログイン ページにジャンプする URL を生成します。

callback メソッドでは、まず Socialite ファサードを使用して 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 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。