Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
32
Help us understand the problem. What is going on with this article?
@mosaxiv

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

More than 3 years have 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に対応しているのでミドルウェアでも利用出来るようにしています。

32
Help us understand the problem. What is going on with this article?
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
mosaxiv
(ง ´・ω・`)ว

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
32
Help us understand the problem. What is going on with this article?