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 サイトの他の関連記事を参照してください。

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

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'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

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

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

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

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

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


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

ZendStudio 13.5.1 Mac
強力な PHP 統合開発環境

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

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

WebStorm Mac版
便利なJavaScript開発ツール

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

ホットトピック



