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

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 までご連絡ください。
最新のLaravelバージョン:新しいものを発見してください最新のLaravelバージョン:新しいものを発見してくださいMay 12, 2025 am 12:15 AM

LARAVEL10INTRODUCESSERALKEYFEATURESTENHANCEWEBDEVELOPMENT.1)LAZYCOLLECTIONSSALLECTIONSSALLOWECTIONSALLOWESPICIENTPROCESSINGOFLAREDATASETSWITHOUTLECORDSINTOMEMORY.2)The'Make:Model and-Migration'ArtisAncommandSimplifiesingModElsandmigrations.3)Integration

Laravel移行の説明:データベースの作成、変更、管理Laravel移行の説明:データベースの作成、変更、管理May 12, 2025 am 12:11 AM

laravelmigrationsは、開発の測定を行う必要があります

Laravel Migration:使用する価値はありますか?Laravel Migration:使用する価値はありますか?May 12, 2025 am 12:10 AM

はい、laravelmigrationsworthusing.itsimplifiesdatabaseschemamamanagement、entancescollaboration、およびprovidesversioncontrol.useitfortructured、efficientdevelopment。

Laravel:Soft Deletes Performanceの問題Laravel:Soft Deletes Performanceの問題May 12, 2025 am 12:04 AM

softdeletesinlaravelimpactperformancebycomplicating complicating andincreasingstorageneeds.tomitigatetheseissues:1)indexthedeleted_atcolumntospeedupqueries、2)useegerloadingtoreducequerycount、and3)remulationcleanupsoftedededtomentaindatabaseefiefie

Laravelの移行は何に適していますか?ユースケースとメリットLaravelの移行は何に適していますか?ユースケースとメリットMay 11, 2025 am 12:14 AM

laravelMigrationSareBenefisialForversionControl、Collaboration、およびProMotingGoodDevelopmentPractices.1)TheyThealOwTrackingBackDatabaseChanges.2)MigrationSensureTeamMembers'schemasStaysized.3)

Laravelでソフト削除の使用方法:データの保護Laravelでソフト削除の使用方法:データの保護May 11, 2025 am 12:14 AM

Laravelのソフト削除機能は、実際の削除ではなくレコードをマークすることによりデータを保護します。 1)softdeletestraitを追加し、フィールドをモデルに削除します。 2)delete()メソッドを使用して、delete()メソッドを使用してdeleteをマークし、復元します。 3)withtrashed()またはonlytrashed()を使用して、クエリ時にソフト削除レコードを含めます。 4)パフォーマンスを最適化するために一定期間を超えたソフト削除レコードを定期的に削除します。

Laravelの移行とは何ですか?それらをどのように使用しますか?Laravelの移行とは何ですか?それらをどのように使用しますか?May 11, 2025 am 12:13 AM

laravelMigrationSareversionControlfordatabaseChemas、avainwedReproducible andReversiblechanges.tousethem:1)createamigration with'phpartisanmake:migration '、2)defineschemachangesinthe'up()' methodandrealin'dod()

Laravel Migration:ロールバックは機能しません、何が起こっていますか?Laravel Migration:ロールバックは機能しません、何が起こっていますか?May 11, 2025 am 12:10 AM

laravelMigrationsmayfailtorollbackduetodategrityissues、foreignkeyconstraints、orirReversiblecoctions.1)datagegrityissuescurifigriverigrignigrationaddsdatatatcan'tcan'tcan、likecolumnwithadeadefaultvalue.2)foreientkeycostriantsscanpretrolllolllolllolllolllolllolllollblacksifrelatio

See all articles

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

MantisBT

MantisBT

Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。