0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Laravel Google アカウントでSSO

Posted at

Laravelで作成したウェブアプリにGoogle アカウントでSSOログインできる機能を実装します。

SSOの概念すらわかっていなかったのでアプトプットとして記載します。
またOAuth(オーオース)の説明についても参考記事を記載しておきます。
https://qiita.com/TakahikoKawasaki/items/e37caf50776e00e733be

SSO (シングルサイイオン)とは

ユーザーが1セットのアカウント情報だけで複数のアプリやWebサイトにログインできる仕組みのこと

各サービスの事前準備

1. Google Developers Console(GCP)アカウント作成

2.プロジェクトの作成

「プロジェクト」を押下して、プロジェクト名を入力して「作成」を押下
スクリーンショット 2025-04-16 9.15.48.png

3.クライアントID、クライアントシークレットの発行

ここで承認済みのリダイレクトURLを設定する必要があります。
認証情報を作成 > OAuthクライアントIDをクリック
スクリーンショット 2025-04-16 9.20.09.png

OAuthクライアントIDの作成(アプリ名などはよりなりに作成してください)スクリーンショット 2025-04-16 9.23.08.png

作成ボタンを押下するとOAuthクライアント情報が表示されるので、クライアントID、クライアントシークレットIDとJSONをダウンロードして、認証情報を保存してください。

4. Google + APIの有効化

API検索からGoogle+ APIを入力して検索する
スクリーンショット 2025-04-16 9.32.03.png

Laravel設定

.envにGCPアクセス情報を追加

GOOGLE_CLIENT_ID=xxxxxxxxxx-xxxxxxxxxxxxxx.apps.googleusercontent.com
GOOGLE_CLIENT_SECRET=xxxxxx-xxxxxxxxxx-xxxxxxxxx

Laravel Socialite(ソーシャルライト) のインストール

OAuthプロバイダーで認証するためのシンプルで便利なライブリラーでLaravelの公式でサポートされている
公式URL:https://readouble.com/laravel/12.x/ja/socialite.html

インストール

composer require laravel/socialite

Config/services.phpにgoogle認証に必要なプロバイダー情報を追加する

   'google' => [
        'client_id' => env('GOOGLE_CLIENT_ID'),
        'client_secret' => env('GOOGLE_CLIENT_SECRET'),
        'redirect' => 'http://localhost:8080', // ここはGCPの承認済みのリダイレクトURIに合わせる必要があります。
    ],

ルーティングで実装

<?php

use Illuminate\Support\Facades\Route;
use Laravel\Socialite\Facades\Socialite;

Route::get('/', function () {
    return view('welcome');
});

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


実際に動作確認

1.http://localhost:8080/auth/redirectをURL欄に入力
2.Google アカウント選択できること
3.トップページの戻ってくること

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?