カテゴリ: Laravel 更新日: 2026/01/25

Laravelでソーシャルログインを完全入門!Google・GitHub認証をやさしく実装

Laravelでソーシャルログイン(Google, GitHub)を実装する方法(Laravel Socialite)
Laravelでソーシャルログイン(Google, GitHub)を実装する方法(Laravel Socialite)

先生と生徒の会話形式で理解しよう

生徒

「Laravelのサイトで、GoogleログインやGitHubログインって作れるんですか?」

先生

「作れますよ。Laravel Socialiteという公式の仕組みを使います」

生徒

「メールアドレスとパスワードを作らなくても大丈夫なんですか?」

先生

「はい。他のサービスのログイン情報を借りて認証できます」

1. ソーシャルログインとは?

1. ソーシャルログインとは?
1. ソーシャルログインとは?

ソーシャルログインとは、GoogleやGitHubなど、すでに持っているアカウントを使ってログインできる仕組みです。新しくIDやパスワードを作らなくてよいので、利用者にとってとても便利です。

現実世界で例えると、会員証を毎回作らず、運転免許証や社員証を見せて本人確認をするようなイメージです。

2. Laravel Socialiteとは?

2. Laravel Socialiteとは?
2. Laravel Socialiteとは?

Laravel Socialiteは、Laravel公式のソーシャルログイン用ライブラリです。GoogleログインやGitHubログインなどを、難しい処理を書かずに実装できます。

公式が用意しているため情報も多く、Laravelの認証と認可を学ぶ初心者にとって安心して使える仕組みです。

3. Socialiteをインストールする

3. Socialiteをインストールする
3. Socialiteをインストールする

まずはLaravelプロジェクトにSocialiteを追加します。


composer require laravel/socialite

composerは、Laravelで便利な部品を追加するための道具です。このコマンドでSocialiteが使えるようになります。

4. Google・GitHubの認証情報を準備する

4. Google・GitHubの認証情報を準備する
4. Google・GitHubの認証情報を準備する

ソーシャルログインでは、GoogleやGitHub側に「このサイトは安全ですよ」と登録する必要があります。このときに発行されるのがクライアントIDクライアントシークレットです。

これは「お店の登録番号と合言葉」のようなもので、正しく登録したサイトだけがログイン機能を使えます。

5. 環境設定ファイルに認証情報を書く

5. 環境設定ファイルに認証情報を書く
5. 環境設定ファイルに認証情報を書く

取得した情報は、設定ファイルに記述します。


GOOGLE_CLIENT_ID=xxxxxxxx
GOOGLE_CLIENT_SECRET=xxxxxxxx
GITHUB_CLIENT_ID=xxxxxxxx
GITHUB_CLIENT_SECRET=xxxxxxxx

このファイルは、アプリ全体の設定をまとめて管理するメモ帳のようなものです。

6. services.phpに設定を追加する

6. services.phpに設定を追加する
6. services.phpに設定を追加する

次に、Laravelに「GoogleとGitHubを使います」と伝えます。


'google' => [
    'client_id' => env('GOOGLE_CLIENT_ID'),
    'client_secret' => env('GOOGLE_CLIENT_SECRET'),
    'redirect' => '/login/google/callback',
],

'github' => [
    'client_id' => env('GITHUB_CLIENT_ID'),
    'client_secret' => env('GITHUB_CLIENT_SECRET'),
    'redirect' => '/login/github/callback',
],

redirectは、ログイン後に戻ってくる住所のようなものです。

7. ルーティングを設定する

7. ルーティングを設定する
7. ルーティングを設定する

ログイン処理の入口を用意します。


Route::get('/login/google', [SocialLoginController::class, 'redirectGoogle']);
Route::get('/login/google/callback', [SocialLoginController::class, 'callbackGoogle']);

ルーティングとは、URLと処理を結びつける案内板のようなものです。

8. コントローラでログイン処理を書く

8. コントローラでログイン処理を書く
8. コントローラでログイン処理を書く

コントローラは、実際の処理をまとめる司令塔です。


use Laravel\Socialite\Facades\Socialite;

public function redirectGoogle()
{
    return Socialite::driver('google')->redirect();
}

public function callbackGoogle()
{
    $googleUser = Socialite::driver('google')->user();
}

ここでGoogleから利用者の情報を受け取ります。

9. ユーザー情報を保存してログインする

9. ユーザー情報を保存してログインする
9. ユーザー情報を保存してログインする

取得した情報をもとに、ユーザーを登録またはログインさせます。


$user = User::firstOrCreate(
    ['email' => $googleUser->getEmail()],
    ['name' => $googleUser->getName()]
);

Auth::login($user);

firstOrCreateは「いなければ作る、いれば使う」という便利な仕組みです。

10. ソーシャルログインのメリット

10. ソーシャルログインのメリット
10. ソーシャルログインのメリット

ソーシャルログインを使うと、パスワード管理の手間が減り、ログインのハードルが下がります。また、信頼できる外部サービスを使うことで安全性も高まります。

Laravel Socialiteは公式機能なので、Laravelの認証と認可を学ぶ中で自然に使える点も大きな利点です。

11. 初心者が混乱しやすいポイント

11. 初心者が混乱しやすいポイント
11. 初心者が混乱しやすいポイント

最初は「外部サービスに飛ぶ」「戻ってくる」という流れが分かりにくいかもしれません。これは、一度外に出て身分証を確認し、また戻ってくる流れだと考えると理解しやすくなります。

仕組みが分かれば、GoogleログインもGitHubログインも同じ考え方で実装できます。

関連記事:
カテゴリの一覧へ
新着記事
New1
Laravel
LaravelでAPIのレスポンスをテストする方法を完全解説!assertJsonで初心者も安心
New2
CodeIgniter
CodeIgniterでRESTful API開発!初心者でもわかる全体構成ガイド
New3
Symfony
Symfonyのコントローラとは?作成・構造・役割を初心者向けにやさしく解説!
New4
Symfony
Symfonyでバリデーションメッセージを多言語対応する方法!初心者でもわかる国際化の基本
人気記事
No.1
Java&Spring記事人気No1
Laravel
Laravelのシングルアクションコントローラとは?使い方と利点
No.2
Java&Spring記事人気No2
Laravel
Laravelで動的パラメータをルートに渡す方法!初心者にもやさしいルートパラメータの使い方入門
No.3
Java&Spring記事人気No3
Laravel
LaravelのBlade構文まとめ!@if @foreach など基本ディレクティブ解説
No.4
Java&Spring記事人気No4
Symfony
Symfonyの依存性注入(DI)とは?コンストラクタでの注入方法を初心者向けに徹底解説
No.5
Java&Spring記事人気No5
Laravel
Laravelでキャッシュを使う方法(ファイル・Redis・Memcached)
No.6
Java&Spring記事人気No6
Laravel
Laravelで名前付きルートを設定する方法!初心者でもわかるroute()関数の使い方
No.7
Java&Spring記事人気No7
Laravel
Laravelのマイグレーション履歴を確認する方法を徹底解説!migrate:statusの使い方
No.8
Java&Spring記事人気No8
Laravel
Laravelでコントローラを作成する方法(artisanコマンド)