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

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

Jun 14, 2023 am 09:30 AM
laravel google socialite

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

最新の Web アプリケーションでは、ユーザーのログインと認証が不可欠です。ユーザー名とパスワードに基づく従来の認証方法では、セキュリティと利便性の要件を満たすことができなくなりました。サードパーティ ログインは、ユーザーが他のプラットフォームですでに作成したアカウントを使用してアプリケーションにログインできるようにすることで、この問題を解決します。

この記事では、Laravel SocialiteとGoogleを使ったサードパーティログインの実装方法を紹介します。

Laravel ソーシャライトとは何ですか?

Laravel Socialite は、Laravel コミュニティで広く使用されている OAuth 認証プロセスのパッケージ化ライブラリです。これにより、Facebook、Twitter、Google などの複数のサードパーティ サービスに簡単に接続できるようになります。

Google 開発プラットフォームの設定

まず、Google 開発プラットフォームで OAuth クライアント ID を作成する必要があります。 https://console.developers.google.com/ を開いて、新しいプロジェクトを作成します。左上隅にある [プロジェクトの選択] ドロップダウン メニューで、[新しいプロジェクト] をクリックします。

プロジェクト名とその他のプロジェクト設定情報を入力します。プロジェクトを作成すると、プロジェクトの概要ページにリダイレクトされます。上部のメニューから、「API とサービス」>「認証情報」を選択します。

[認証情報の作成] ボタンをクリックし、[OAuth クライアント ID] を選択します。

[アプリケーション タイプ] ドロップダウン メニューで、[Web アプリケーション] を選択します。 Laravel Socialite を Google と統合するには、「承認された JavaScript ソース」フィールドと「リダイレクト URI」フィールドに入力する必要があります。

「承認された JavaScript ソース」フィールドにアプリケーションのホスト名を入力します。「http://localhost」の URL をローカルで使用できます。 [リダイレクト URI] フィールドに、Google からログインした後にアプリケーションにリダイレクトするコールバック URL を入力します。この例では、URL「http://localhost:8000/auth/google/callback」を使用します。

作成後、クライアント ID とクライアント シークレットが与えられます。これらの資格情報を保存します。後で Laravel で使用します。

Laravel Socialite のインストールと構成

Laravel Socialite は、コマンドラインインストールを通じて使用できる Composer パッケージです。次のコマンドを使用してインストールします。

composer require laravel/socialite
ログイン後にコピー

インストールが完了したら、Socialite サービス プロバイダーを Laravel 構成ファイルに追加します。

'providers' => [
    // ...
    LaravelSocialiteSocialiteServiceProvider::class,
],
ログイン後にコピー

次の構成情報も追加する必要があります。 Laravel 設定ファイル:

'client_id' => env('GOOGLE_CLIENT_ID'),
'client_secret' => env('GOOGLE_CLIENT_SECRET'),
'redirect' => env('GOOGLE_REDIRECT'),
ログイン後にコピー

ここでは、.env ファイルを使用して必要な設定情報を保存します:

GOOGLE_CLIENT_ID=your-client-id
GOOGLE_CLIENT_SECRET=your-client-secret
GOOGLE_REDIRECT=http://localhost:8000/auth/google/callback
ログイン後にコピー

Laravel Socialite 統合

ここでは、 Google で OAuth フローを処理するルーティング プロセス プログラムを作成する必要があります。

Route::get('/auth/google', function () {
    return Socialite::driver('google')->redirect();
});

Route::get('/auth/google/callback', function () {
    $user = Socialite::driver('google')->user();
    dd($user);
});
ログイン後にコピー

最初のルート ハンドラーは、ユーザーを Google ログイン フローにリダイレクトします。

成功すると、ユーザーは 2 番目のルート ハンドラーにリダイレクトされます。このとき、user() メソッドを使用して、ログインしているユーザーの情報を取得できます。返されたユーザー コードを入力し、取得したユーザー情報を出力します。

$user = Socialite::driver('google')->user();
dd($user);
ログイン後にコピー

ユーザー名、電子メール アドレス、アバター、トークンなど、ユーザーに関するその他のデータが表示されます。この情報に基づいて、サードパーティのログインを実装できます。

ここでは、上記で取得したユーザー情報を使用して、アプリケーション ユーザーを作成し、認証します。

Route::get('/auth/google/callback', function () {
    $user = Socialite::driver('google')->user();
    // save application user
    $authUser = User::where('email', $user->email)->first();
    if ($authUser) {
        Auth::login($authUser, true);
        return redirect('/home');
    }
    // create application user
    $newUser = new User;
    $newUser->name = $user->name;
    $newUser->email = $user->email;
    $newUser->password = bcrypt(str_random(16));
    $newUser->save();
    Auth::login($newUser, true);
    return redirect('/home');
});
ログイン後にコピー

ここでは、Google から返されたメール アドレスを使用して既存のアプリ ユーザーを検索することから始めます。見つかった場合は、Laravel の認証 API を使用してログインします。見つからない場合は、新しいユーザーを作成し、Laravel の認証 API を使用してログインします。

結論

この記事では、Laravel Socialite と Google を使用してサードパーティ ログインを実装する方法を紹介します。

Google 開発プラットフォームの設定を通じて、必要な OAuth 認証情報を生成しました。次に、Laravel Socialite を使用して、OAuth プロセスの面倒な手順とコードを排除しました。最後に、ユーザーの既存の電子メール アドレスを使用して新しいユーザーを認証し、作成します。

この記事が、OAuth プロセスの概要をカバーするだけでなく、Laravel Socialite と Google を使用してサードパーティ ログインを実装する方法に関するガイダンスを提供することを願っています。

以上がLaravel 開発: Laravel Socialite と Google を使用してサードパーティ ログインを実装するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Google Pixel 9 Pro XLはデスクトップモードでテストされる Google Pixel 9 Pro XLはデスクトップモードでテストされる Aug 29, 2024 pm 01:09 PM

Google は、Pixel 8 シリーズで DisplayPort 代替モードを導入しており、新たに発売された Pixel 9 ラインナップにも搭載されています。これは主に、接続された画面でスマートフォンのディスプレイをミラーリングするためにありますが、デスクトップにも使用できます。

Google、AI Test Kitchen & Imagen 3 をほとんどのユーザーに公開 Google、AI Test Kitchen & Imagen 3 をほとんどのユーザーに公開 Sep 12, 2024 pm 12:17 PM

Google の AI Test Kitchen には、ユーザーが遊べる一連の AI 設計ツールが含まれており、現在、世界 100 か国をはるかに超える国のユーザーに公開されています。この動きにより、世界中の多くの人が Imagen 3、Google を使用できるようになるのは初めてです。

Google、Pixel 9 Pro Foldは奇妙なデザインのおかげで公式ワイヤレス充電アクセサリと互換性がないことを確認 Google、Pixel 9 Pro Foldは奇妙なデザインのおかげで公式ワイヤレス充電アクセサリと互換性がないことを確認 Sep 01, 2024 am 06:31 AM

Pixel 9 Pro Fold は、Google の初期の折りたたみ部門の volte-face に似ています。実際、Pixel 9 Pro Fold と Pixel Fold には大きな違いがあり、前者は OnePlus Open (現在の価格 1,399.99 ドル) と比べられています。

Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Laravelで電子メールの送信が失敗したときに返品コードを取得する方法は? Apr 01, 2025 pm 02:45 PM

Laravelの電子メールの送信が失敗したときに戻りコードを取得する方法。 Laravelを使用してアプリケーションを開発する場合、検証コードを送信する必要がある状況に遭遇することがよくあります。そして実際には...

Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Laravelスケジュールタスクは実行されません:スケジュール:実行コマンドの後にタスクが実行されていない場合はどうすればよいですか? Mar 31, 2025 pm 11:24 PM

LaravelスケジュールタスクRAN RANSPONSIVEトラブルシューティングRALAVELのスケジュールタスクスケジューリングを使用すると、多くの開発者がこの問題に遭遇します。スケジュール:実行...

Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Laravelでは、検証コードが電子メールで送信できない状況に対処する方法は? Mar 31, 2025 pm 11:48 PM

Laravelの電子メールの検証コードの送信の障害を処理する方法は、Laravelを使用することです...

DCAT管理者にデータを追加するためにクリックのカスタムテーブル関数を実装する方法は? DCAT管理者にデータを追加するためにクリックのカスタムテーブル関数を実装する方法は? Apr 01, 2025 am 07:09 AM

DCATを使用するときにDCATADMIN(Laravel-Admin)にデータを追加するためにカスタムクリックのテーブル関数を実装する方法...

実際にGoogleを所有しているのは誰ですか? 実際にGoogleを所有しているのは誰ですか? Apr 02, 2025 pm 04:01 PM

GoogleはAlphabet Inc.が所有しています。これは、Larry PageとSergey Bringによって管理されています。 2)AlphabetのクラスAとクラスCの株式は、それぞれ公開市場と従業員の株式所有計画で配布されますが、創業者の管理には影響しません。

See all articles