$yuzu->log();

技術ネタなど。

【PHP】OpauthでLINEログインを簡単に実装する

PHPSNSログインライブラリ、OpauthがLINEログインに対応しました! Opauthを使えば簡単にLINEログインも実装できます。 バグがあったらPRお願いします。

github.com

PHPでLINEログインを実装してみる

LINEログイン準備編

business.line.me

ログイン後にアカウント情報、企業情報を埋めます。

f:id:yuzurus:20170408151644j:plain

LINEログインの説明を読んだあと、ビジネスアカウントの作成をします。

f:id:yuzurus:20170408151857p:plain

ここで設定した情報がLINEログインする際に表示される情報になります。

LINEログインアカウントの作成が終わったら、「Basic Information」をクリック

Channel IDChannnel Secretをメモしましょう。

f:id:yuzurus:20170408153432j:plain

次に「Technical configuration」をクリック

f:id:yuzurus:20170408152240j:plain

ここでcallback URLを指定します。

※ちなみにLINEログインはhttpsでなければなりません。ご注意ください。

今回のcallbackURLはhttps://example.com/line/oauth2callbackとします。

これで準備はおしまいです。次に実装編です。

LINEログイン実装編

OpauthのLINE Strategyをインストー

composerを利用してインストールします。

composer require opauth/line

今回はPHPのマイクロフレームワークであるsilexで試してみたいと思います。

composer require silex/silex

設定ファイルの作成

config.phpとして下記の様にしてください

<?php
$config = [
        'security_salt' => 'hogehogeyudsuzuk', // ランダムな文字列
        'Strategy' => [
                'LINE' => [
                        'channel_id' => 'CHANNEL_ID',
                        'channel_secret' => 'CHANNEL_SECRET',
                ]
        ],
];

index.phpとして下記のようにしてください

<?php
require_once(__DIR__ . '/vendor/autoload.php');
$app = new Silex\Application();

// LINEログインURL
$app->get('/line', function () {
        require_once(__DIR__ . '/config.php');
        new Opauth($config);
        return 'OK';
});

// LINEログインとしてのコールバック
$app->get('/line/oauth2callback', function () { 
        require_once(__DIR__ . '/config.php');
        new Opauth($config);
        return 'OK';
});

// コールバック。すでに認証情報がsessionに入っています。
$app->get('/callback', function () {
        session_start();
        return print_r($_SESSION,true);
});
$app->run();

これでLINEログインの実装は完了です。

https://example.com/line にアクセスするとLINEの認証画面が表示され、ログインするとSESSIONの中身が表示されます。

お疲れ様でした!!