検索
ホームページ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 までご連絡ください。
如何在Google Sheet中为图例添加标签如何在Google Sheet中为图例添加标签Feb 19, 2024 am 11:03 AM

本文将演示如何在GoogleSheet中为图例添加标签,这些标签侧重于单个事物,提供名称或标识。图例解释了事物的系统或组,为您提供相关的上下文信息。如何在GoogleSheet中为图例添加标签有时候,在使用图表时,我们想要让图表更易于理解。通过添加恰当的标签和图例,可以实现这一目的。接下来,我们将介绍如何在Google表格中为图例添加标签,让您的数据更加清晰明了。创建图表编辑图例标签的文本我们开始吧。1]创建图表要标记图例,首先,我们必须创建一个图表:首先,在GoogleSheets的列或行中输

Google Pixel 9 and Pixel 9 Pro rumoured to gain Creative Assistant AI upon releaseGoogle Pixel 9 and Pixel 9 Pro rumoured to gain Creative Assistant AI upon releaseJun 22, 2024 am 10:50 AM

Currently, four new Pixel smartphones are anticipated to land this autumn. To recap, the series is rumoured to feature thePixel 9 and Pixel 9 Pro at launch. However, the Pixel 9 Pro will be a rival to the iPhone 16 Pro rather than a Pixel 8 Pro (curr

Google app beta APK teardown reveals new extensions coming to Gemini AI assistantGoogle app beta APK teardown reveals new extensions coming to Gemini AI assistantJul 30, 2024 pm 01:06 PM

Google's AI assistant, Gemini, is set to become even more capable, if the APK teardown of the latest update (v15.29.34.29 beta) is to be considered. The tech behemoth's new AI assistant could reportedly get several new extensions. These extensions wi

优化谷歌浏览器下载速度的技巧与方法优化谷歌浏览器下载速度的技巧与方法Dec 27, 2023 pm 03:42 PM

在现代社会中,网络已经成为我们获取信息、分享资源和进行日常活动的主要方式。其中,文件下载是我们经常需要进行的操作之一,无论是从个人电脑到移动设备,还是从互联网服务器到本地存储设备。然而,快速稳定的文件下载可能会受到许多因素的影响,包括网络连接速度、服务器响应时间、浏览器性能等。今天,我们将重点讨论如何通过优化谷歌浏览器来提高文件下载速度。谷歌浏览器无法启动更新检查的解决方法1、打开谷歌浏览器,在地址栏输入【Chrome://flags】后按回车,进入到Chrome的实验功能中。 2、在搜索栏中搜

Google AI announces Gemini 1.5 Pro and Gemma 2 for developersGoogle AI announces Gemini 1.5 Pro and Gemma 2 for developersJul 01, 2024 am 07:22 AM

Google AI has started to provide developers with access to extended context windows and cost-saving features, starting with the Gemini 1.5 Pro large language model (LLM). Previously available through a waitlist, the full 2 million token context windo

Leaked Google Pixel 9 adverts show new AI features including \'Add Me\' camera functionalityLeaked Google Pixel 9 adverts show new AI features including \'Add Me\' camera functionalityJul 30, 2024 am 11:18 AM

More promotional materials relating to the Pixel 9 series have leaked online. For reference, the new leak arrived shortly after 91mobiles shared multiple images that also showcased the Pixel Buds Pro 2 and Pixel Watch 3 or Pixel Watch 3 XL. This time

顺手训了一个史上超大ViT?Google升级视觉语言模型PaLI:支持100+种语言顺手训了一个史上超大ViT?Google升级视觉语言模型PaLI:支持100+种语言Apr 12, 2023 am 09:31 AM

近几年自然语言处理的进展很大程度上都来自于大规模语言模型,每次发布的新模型都将参数量、训练数据量推向新高,同时也会对现有基准排行进行一次屠榜!比如今年4月,Google发布5400亿参数的语言模型PaLM(Pathways Language Model)在语言和推理类的一系列测评中成功超越人类,尤其是在few-shot小样本学习场景下的优异性能,也让PaLM被认为是下一代语言模型的发展方向。同理,视觉语言模型其实也是大力出奇迹,可以通过提升模型的规模来提升性能。当然了,如果只是多任务的视觉语言模

如何在 Ubuntu 上安装 Google 字体 22.04 LTS如何在 Ubuntu 上安装 Google 字体 22.04 LTSFeb 19, 2024 pm 11:18 PM

使用Google字体能够显著增强数字内容的视觉吸引力。透过精心挑选的字体,您可以为信息设定特定的氛围,提升文本的易读性,为观众带来更具吸引力的阅读体验。通过GoogleFonts,您可以轻松地探索各种字体风格,找到与您的设计理念完美契合的字体。在Ubuntu上安装GoogleFonts22.04LTSJammyJellyfish在开始安装之前,请务必确保您的Ubuntu22.04系统是最新的。保持系统更新不仅可确保您拥有最新功能和安全补丁,还有助于避免新软件安装时可能出现的兼容性问题。sudoa

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

AI Hentai Generator

AI Hentai Generator

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

ホットツール

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

強力な PHP 統合開発環境

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser は、オンライン試験を安全に受験するための安全なブラウザ環境です。このソフトウェアは、あらゆるコンピュータを安全なワークステーションに変えます。あらゆるユーティリティへのアクセスを制御し、学生が無許可のリソースを使用するのを防ぎます。

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

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

WebStorm Mac版

WebStorm Mac版

便利なJavaScript開発ツール

AtomエディタMac版ダウンロード

AtomエディタMac版ダウンロード

最も人気のあるオープンソースエディター