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-login | LINE Login によるOAuth2認証 |
.env
LINE_LOGIN_CLIENT_ID=
LINE_LOGIN_CLIENT_SECRET=
LINE_LOGIN_REDIRECT=
基本的な使い方
ルートを定義する
routes/web.php にリダイレクト用とコールバック用の2つのルートを追加します。use App\Http\Controllers\SocialiteController;
Route::get('login', [SocialiteController::class, 'login']);
Route::get('callback', [SocialiteController::class, 'callback']);
コントローラーを作成する
<?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 スコープ を参照してください。