Lineログインを実装する

PHP7で検証しています。
PHPのビルドインのサーバを使用しています。

ChannelIDとChannelSecretを取得

  1. Line Developers にアクセスします。
  2. Lineログインをはじめるをクリックしてログインします。
  3. 新規プロバイダー作成をします。
  4. 新規channel作成をします。
  5. アプリ設定からCallbackURLを設定します。今回は http://localhost:8080/callback.php と設定しておきます。
  6. Channel基本設定からChannelIDとChannelSecretを取得します。

実装

socialite-manager/socialite を使うことで簡単に実装できます。
Composerでダウンロードします。
(良さそうなライブラリならスターしてください😘)

1
2
composer require socialite-manager/socialite
composer require socialite-manager/line-provider

コンフィグの作成

取得したChannelIDとChannelSecretを設定します。

1
2
3
4
5
6
7
8
<?php
// config.php

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

リダイレクト設定

Lineログインページへリダイレクトをします。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
<?php
// index.php

require_once __DIR__ . "/vendor/autoload.php";
require_once __DIR__ . "/config.php";

use Socialite\Provider\LineProvider;
use Socialite\Socialite;

Socialite::driver(LineProvider::class, $config)->redirect();

ユーザ情報の取得

Line認証後にここでユーザ情報を取得できます。
getId() でユーザIDを取得できるのでDBにIDを保存しておくことでユーザ登録を実装できます。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<?php
// callback.php

require_once __DIR__ . "/vendor/autoload.php";
require_once __DIR__ . "/config.php";

use Socialite\Provider\LineProvider;
use Socialite\Socialite;

$user = Socialite::driver(LineProvider::class, $config)->user();

var_dump($user->getName());
var_dump($user->getId());

確認

ビルドインサーバの起動

1
$php -S localhost:8080

http://localhost:8080 にアクセスするLineログイン画面へリダイレクトします。