カテゴリ: PHP 更新日: 2026/01/19

PHPのOAuth認証をやさしく解説!Google・Facebookログインを初心者向けに実装しよう

PHP の OAuth 認証(Google・Facebook ログイン)
PHP の OAuth 認証(Google・Facebook ログイン)

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

生徒

「先生、他のサイトでよく見る『Googleでログイン』とか『Facebookでログイン』って、どうやって作るんですか?」

先生

「それは『OAuth(オーオース)認証』という仕組みを使っています。PHPでも簡単に実装できますよ。」

生徒

「なんだか難しそう…。初心者でもできますか?」

先生

「もちろん大丈夫!一つずつ、やさしく説明していきましょう。」

1. OAuth認証ってなに?初心者でもわかる例えで解説

1. OAuth認証ってなに?初心者でもわかる例えで解説
1. OAuth認証ってなに?初心者でもわかる例えで解説

「OAuth認証(オーオースにんしょう)」は、他のサービス(GoogleやFacebookなど)にログインして、その情報を使って自分のサイトにもログインできる仕組みです。

たとえば、図書館で本を借りるときに、学校の学生証を見せて本人確認するようなイメージです。

PHPでOAuth認証を使うことで、自分のWebアプリにログイン機能を簡単に追加できます。

ここでは、PHPでGoogleログイン・Facebookログインを実装する手順をやさしく解説します。

2. 必要なものを確認しよう(初心者向けの準備)

2. 必要なものを確認しよう(初心者向けの準備)
2. 必要なものを確認しよう(初心者向けの準備)

PHPでOAuth認証を行うには、以下のものが必要です:

  • PHPが動くサーバー(ローカルでもOK)
  • Composer(PHPのライブラリ管理ツール)
  • Google / Facebookの開発者アカウント

もしパソコンをあまり使ったことがない人でも大丈夫。ひとつずつ進めていけば安心です。

3. GoogleログインをPHPで実装する手順

3. GoogleログインをPHPで実装する手順
3. GoogleログインをPHPで実装する手順

まずは、GoogleでのOAuth認証の仕組みを使ってログイン機能を作ってみましょう。

GoogleのOAuth認証には、Google Cloud Consoleを使います。

ステップ1:Google Cloud Consoleで新しいプロジェクトを作成

  1. Google Cloud Consoleにアクセス
  2. 「プロジェクトを作成」をクリック
  3. プロジェクト名を入力し、作成

ステップ2:OAuth同意画面の設定

  1. 「APIとサービス」→「OAuth同意画面」を選択
  2. ユーザータイプは「外部」を選ぶ
  3. アプリ名やサポートメールを入力

ステップ3:認証情報を作成

  1. 「認証情報」から「認証情報を作成」→「OAuth 2.0 クライアントID」
  2. 「アプリケーションの種類」は「ウェブアプリケーション」
  3. リダイレクトURIを入力(例:http://localhost/callback.php

ステップ4:Google Clientライブラリをインストール

ターミナルで以下を実行(Composerが必要)


composer require google/apiclient:^2.0

4. PHPコードでGoogleログインを実装しよう

4. PHPコードでGoogleログインを実装しよう
4. PHPコードでGoogleログインを実装しよう

次に、PHPのコードを書いていきます。ファイルは以下の2つを用意します:

  • login.php(ログインボタンの表示)
  • callback.php(Googleからの情報を受け取る)

login.php の内容


setClientId('あなたのクライアントID');
$client->setClientSecret('あなたのクライアントシークレット');
$client->setRedirectUri('http://localhost/callback.php');
$client->addScope("email");
$client->addScope("profile");

$authUrl = $client->createAuthUrl();
echo "<a href='$authUrl'>Googleでログイン</a>";
?>

callback.php の内容


<?php
require_once 'vendor/autoload.php';

$client = new Google_Client();
$client->setClientId('あなたのクライアントID');
$client->setClientSecret('あなたのクライアントシークレット');
$client->setRedirectUri('http://localhost/callback.php');

if (isset($_GET['code'])) {
    $token = $client->fetchAccessTokenWithAuthCode($_GET['code']);
    $client->setAccessToken($token);

    $oauth = new Google_Service_Oauth2($client);
    $userInfo = $oauth->userinfo->get();

    echo "こんにちは、" . htmlspecialchars($userInfo->name) . "さん";
}
?>

5. Facebookログインも同じように使える

5. Facebookログインも同じように使える
5. Facebookログインも同じように使える

FacebookでもOAuthを使ってログイン機能を実装できます。基本の考え方はGoogleと同じです。

PHPでは Facebook SDK for PHP を使います。インストールは次の通りです:


composer require facebook/graph-sdk

その後、アプリIDやシークレットを使ってログイン画面を表示します。

GoogleとFacebook両方をサポートすることで、ユーザーがログインしやすくなり、サービスの利用者も増えやすくなります。

6. よくある質問(初心者向けの補足)

6. よくある質問(初心者向けの補足)
6. よくある質問(初心者向けの補足)

Q. GoogleやFacebookログインを使うと安全ですか?

A. はい。ユーザーのパスワードを自分のサイトで管理しないので、セキュリティ面でも安心です。

Q. 自分のアプリに合うログイン方法を選ぶには?

A. ターゲットユーザーに合わせて、GoogleかFacebook、または両方使うと良いです。

Q. 自分でPHPコードを書くのが不安です。

A. 初心者向けのライブラリがあるので、書くコードは最小限で済みます。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

カテゴリの一覧へ
新着記事
New1
Python
Pythonのセットの基本操作(追加・削除・更新の方法)初心者向け完全ガイド
New2
Python
Pythonで辞書の値を集計する方法(Counter / groupbyの活用)初心者向け完全ガイド
New3
Python
Pythonの辞書をマージ(結合)する方法(update() / 演算子)初心者向け完全ガイド
New4
Python
Pythonのリストをシャッフルする方法を解説!初心者向けにrandom.shuffleの使い方をやさしく説明
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonのダックタイピングとは?型チェックなしで動的に振る舞うOOP設計をやさしく解説
No.2
Java&Spring記事人気No2
Python
Pythonの書き方を基本から解説!はじめてのPythonプログラム
No.3
Java&Spring記事人気No3
Python
Pythonで経過時間を計測する方法を完全解説!初心者でもわかる time.perf_counter() と time.sleep()
No.4
Java&Spring記事人気No4
Python
Pythonのセット(set)とは?リストや辞書との違いを解説
No.5
Java&Spring記事人気No5
Python
Pythonで一時ファイルを作成・管理する方法!初心者でもわかるtempfileモジュール入門
No.6
Java&Spring記事人気No6
PHP
PHP の可変変数と変数の参照渡しを完全解説!初心者でも理解できる動的変数の使い方
No.7
Java&Spring記事人気No7
Python
Pythonでリストの全要素に処理を適用する方法(map() / lambda)
No.8
Java&Spring記事人気No8
PHP
PHPのJWT認証を完全ガイド!初心者でもわかるJSON Web Tokenの基本と安全な仕組み