メインコンテンツへスキップ

Documentation Index

Fetch the complete documentation index at: https://kawax.biz/llms.txt

Use this file to discover all available pages before exploring further.

概要

このパッケージは Socialite::extend() を使った正規の方法でLINE Loginドライバーを提供します。組み込みプロバイダーとまったく同じAPIで使えます。 利用可能なドライバー:
ドライバー説明
line-loginLINE Login によるOAuth2認証
Laravel Socialite 自体の使い方については Socialite ガイド を参照してください。

設定

.env

LINE_LOGIN_CLIENT_ID=
LINE_LOGIN_CLIENT_SECRET=
LINE_LOGIN_REDIRECT=

基本的な使い方

1

ルートを定義する

routes/web.php にリダイレクト用とコールバック用の2つのルートを追加します。
use App\Http\Controllers\SocialiteController;

Route::get('login', [SocialiteController::class, 'login']);
Route::get('callback', [SocialiteController::class, 'callback']);
2

コントローラーを作成する

<?php

namespace App\Http\Controllers;

use App\Models\User;
use Illuminate\Http\Request;
use Laravel\Socialite\Facades\Socialite;

class SocialiteController extends Controller
{
    public function login()
    {
        return Socialite::driver('line-login')->redirect();
    }

    public function callback(Request $request)
    {
        if ($request->missing('code')) {
            // デバッグ用。本番環境ではリダイレクトやエラー処理に変更してください
            return redirect('/login')->withErrors('認証がキャンセルされました。');
        }

        /** @var \Laravel\Socialite\Two\User */
        $user = Socialite::driver('line-login')->user();

        $loginUser = User::updateOrCreate([
            'line_id' => $user->id,
        ], [
            'name'          => $user->nickname,
            'avatar'        => $user->avatar,
            'access_token'  => $user->token,
            'refresh_token' => $user->refreshToken,
        ]);

        auth()->login($loginUser, true);

        return redirect()->route('home');
    }
}

オプションパラメータ

with() で追加パラメータを渡せます。
public function login()
{
    return Socialite::driver('line-login')->with([
        'prompt'     => 'consent',
        'bot_prompt' => 'normal',
    ])->redirect();
}

スコープの設定

取得する権限をスコープで指定します。
public function login()
{
    return Socialite::driver('line-login')
                    ->setScopes(['profile', 'openid'])
                    ->redirect();
}
主なスコープの一覧については LINE Login スコープ を参照してください。
最新情報は GitHub リポジトリ を参照してください。
Last modified on May 3, 2026