今日のますます発展するソーシャル ネットワーク時代において、ソーシャル ログインはますます多くの Web サイトの標準機能となっています。これにより、ユーザーが迅速にログインできるようになるだけでなく、Web サイトのユーザー トラフィックと社会的交流の増加にも役立ちます。ソーシャル ログインを自分で実装するのは難しくありませんが、既製のソーシャル ログイン コンポーネントを使用すると時間と労力を節約できます。 PHP 開発では、使いやすいソーシャル ログイン コンポーネントである Laravel Socialite を使用してソーシャル ログインを実装する方法を見てみましょう。
1. Laravel Socialite のインストール
まず、次のコマンドを使用して、Laravel アプリケーションに Socialite パッケージをインストールする必要があります:
composer require laravel/socialite
インストールが完了したら、config/app.php
ファイルに Socialite サービス プロバイダーを追加します。
'providers' => [ // Other service providers... LaravelSocialiteSocialiteServiceProvider::class, ]
次に、config/app .php
ファイル Socialite ファサード エイリアスを追加します:
'aliases' => [ // Other aliases... 'Socialite' => LaravelSocialiteFacadesSocialite::class, ]
この方法で、Socialite コンポーネントが正常にインストールされました。
2. ソーシャル ログイン アプリケーションを作成する
Socialite はさまざまなソーシャル ログイン アプリケーションをサポートできるため、アプリケーションごとにアプリケーションを作成する必要があります。以下では、例として GitHub を使用して、GitHub 上で新しい OAuth アプリケーションを作成する方法を示します。
入力が完了したら、「アプリケーションを登録」ボタンをクリックしてください。
3.ソーシャル ログインの実装
<a href="{{ url('/auth/github') }}">使用GitHub登录</a>
routes/web.php
ファイルを開き、次のルート定義を追加します。 Route::get('auth/github', 'AuthLoginController@redirectToProvider'); Route::get('auth/github/callback', 'AuthLoginController@handleProviderCallback');
ここでは、redirectToProvider# 経由でユーザーを GitHub 認証サービスにリダイレクトするように求められます。 ## そしてそこでログイン認証を完了します。認証が成功すると、GitHub 認証サービスは指定されたコールバック URL
auth/github/callback にリダイレクトし、認証に成功したユーザー情報をこの URL 経由でセッションに渡します。
関数を構築します。
app/Http/Controllers/Auth/LoginController.php ファイルを開き、次の実装を追加します:
namespace AppHttpControllersAuth; use IlluminateHttpRequest; use AppHttpControllersController; use Socialite; class LoginController extends Controller { // ... public function redirectToProvider() { return Socialite::driver('github')->redirect(); } // ... }
Socialite ドライバーで
を呼び出します。 () メソッドを使用して GitHub 認証ドライバーのインスタンスを取得し、
redirect() メソッドを使用してユーザーをログイン認証サービスにリダイレクトします。
メソッドで処理します。
app/Http/Controllers/Auth/LoginController.php ファイルを開き、次のメソッドを追加します。
// ... public function handleProviderCallback() { try { $user = Socialite::driver('github')->user(); } catch (Exception $e) { return redirect('/login'); } // 验证用户信息并完成登录,代码省略 // ... } // ...
Socialite の
user を使用します。 () メソッドは、GitHub 認証サービスから返されたユーザー情報を取得します。認証プロセス中にエラーが発生した場合、ユーザーはアプリケーションのログイン ページにリダイレクトされます。認証が成功すると、
$user オブジェクト内の情報を使用してユーザーを認証し、ログイン操作を完了できます。
以上がLaravel 開発: Laravel Socialite を使用してソーシャル ログインを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。