Help us understand the problem. What is going on with this article?

PHPでソーシャルログインを簡単に実装できるライブラリを作った

More than 1 year has passed since last update.

Laravelでソーシャルログインを実装する時にはほとんどの人がlaravel/socialiteを使うと思います。
Socialiteを使うことでとても簡単にソーシャルログインを実装できます :heart_eyes:

そんなSocialiteをLaravel以外でも使いたい!と思ってlaravel/socialiteと同じような実装方法で他のフレームワークや素のPHPで使うことのできるライブラリを作りました。

Github

socialite-manager/socialite

使い方

今回はTwitterのソーシャルログインを実装します。
基本的にはLaravelのSocialiteと同じように実装出来ます。

事前にTwitterからConsumerKeyとConsumerSecretを取得してください。

インストール

composer require socialite-manager/socialite

リダイレクト

oath.php
use Socialite\Socialite;

$config = [
    'client_id' => 'xxx', //ConsumerKey
    'client_secret' => 'xxx', //ConsumerSecret
    'redirect' => 'http://example.com/callback.php', // リダイレクト先
];

Socialite::driver('twitter', $config)->redirect();

ユーザ情報取得

callback.php
use Socialite\Socialite;

$config = [
    'client_id' => 'xxx',
    'client_secret' => 'xxx',
    'redirect' => 'http://example.com/callback.php',
];

$user = Socialite::driver('twitter', $config)->user();

$user->getAvatar();
$user->getEmail();
$user->getId();
$user->getNickname();
$user->getName();

これだけで実装完了です :kissing_heart:

フレームワークで使う

フレームワークで使うことを想定してリクエストやセッションをフレームワークの設定で使えるようにしています。
例えばCakePHP3であれば以下のように設定できます。

UsersController
Socialite::driver('twitter', $config)
            ->setRequest($this->request)
            ->setSession($this->request->getSession());

設定できるインターフェースの詳細は以下から確認できます。
https://github.com/socialite-manager/socialite#advanced-usage

PSR7に対応しているのでミドルウェアでも利用出来るようにしています。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away