CodeIgniter

HybridAuthを使ってソーシャルログインを実装する

この記事は約5分で読めます。
スポンサーリンク

「HybridIgniter」は、CodeIgniterにOAuth認証やソーシャルログイン機能を追加するためのライブラリです。特に、FacebookやGoogle、TwitterなどのSNSを使用してユーザー認証を行う場合に便利です。以下は、HybridIgniterをCodeIgniterに組み込む手順と基本的な使い方です。

スポンサーリンク

インストールと設定

ダウンロードとインストール

「HybridIgniter」ライブラリをダウンロードし、CodeIgniterのapplication/libraries/ディレクトリに配置します。

HybridAuthライブラリのダウンロード

HybridAuthの公式リポジトリからHybridAuthをダウンロードし、application/third_party/HybridAuth/に設置します。

設定ファイルの作成

application/config/hybridauthlib.phpという設定ファイルを作成し、以下のように設定します。

$config['hybridauth'] = [
    "base_url" => base_url("hauth/endpoint"),
    "providers" => [
        "Google" => [
            "enabled" => true,
            "keys" => ["id" => "YOUR_GOOGLE_CLIENT_ID", "secret" => "YOUR_GOOGLE_CLIENT_SECRET"],
        ],
        "Facebook" => [
            "enabled" => true,
            "keys" => ["id" => "YOUR_FACEBOOK_APP_ID", "secret" => "YOUR_FACEBOOK_APP_SECRET"],
        ],
        "Twitter" => [
            "enabled" => true,
            "keys" => ["key" => "YOUR_TWITTER_CONSUMER_KEY", "secret" => "YOUR_TWITTER_CONSUMER_SECRET"],
        ],
    ],
];

各プロバイダー(Google、Facebook、Twitterなど)のクライアントIDやシークレットを入力します。

コントローラーの作成

application/controllers/Hauth.phpというコントローラーを作成し、以下のように認証の処理を実装します。

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class Hauth extends CI_Controller {

    public function __construct() {
        parent::__construct();
        $this->load->library('hybridauthlib');
    }

    public function login($provider) {
        try {
            $service = $this->hybridauthlib->authenticate($provider);
            if ($service->isUserConnected()) {
                $userProfile = $service->getUserProfile();
                // ユーザーデータの取得と保存処理
                print_r($userProfile);
            }
        } catch(Exception $e) {
            show_error($e->getMessage());
        }
    }

    public function endpoint() {
        $this->hybridauthlib->process();
    }
}

loginメソッドで認証プロバイダ(Google、Facebookなど)を指定し、ユーザー認証を行います。

ルーティングの設定

application/config/routes.phpに、HybridAuthのエンドポイントとログインパスを追加します。

$route['hauth/(:any)'] = 'hauth/\';

利用方法

認証プロバイダーのURLにアクセスすることで、ユーザー認証を開始できます。

https://example.com/hauth/login/Google

認証後、ユーザーのプロフィール情報が$userProfileに格納されます。これを使って、ユーザーのデータを取得したり、ユーザー情報をデータベースに保存することができます。

注意点

各プロバイダーのAPI設定で、リダイレクトURIをCodeIgniterのエンドポイント(例:https://example.com/hauth/endpoint)に設定する必要があります。

GitHub - hybridauth/hybridauth: Open source social sign on PHP Library. HybridAuth goal is to act as an abstract api between your application and various social apis and identities providers such as Facebook, Twitter and Google.
Open source social sign on PHP Library. HybridAuth goal is to act as an abstract api between your application and variou...
スポンサーリンク
CodeIgniter
スポンサーリンク

コメント

タイトルとURLをコピーしました