메인 콘텐츠로 건너뛰기

개요

이 패키지는 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에 리다이렉트용과 콜백용 두 라우트를 추가합니다.
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 저장소를 참조하세요.
마지막 수정일 2026년 7월 13일