ミドルウェア
Lase が提供するミドルウェアの一覧です。LaseServiceProvider によって自動登録されます。
IdentifyTenant
エイリアス: tenant
テナント API のすべてのルートに適用されます。サブドメインからテナントを識別し、リクエストにテナントオブジェクトをセットします。
動作
- ルートパラメータ
tenantCode(サブドメイン)を取得 Cache::remember("tenant:{code}", 60min)でテナントを取得- テナントが存在しない場合は
404 NotFoundを返す $request->attributes->set('tenant', $tenant)でテナントをセット- ルートパラメータから
tenantCodeを削除
コントローラでの使い方
php
public function index(Request $request)
{
$tenant = $request->attributes->get('tenant');
// または
$tenant = app('tenant'); // アプリ側でバインドしている場合
}Authorize
エイリアス: authorize
ログイン中のユーザーがリクエストされたコンテキスト(admin または tenant)に属するかを検証します。
php
Route::middleware(['auth', 'authorize:admin'])->group(function () { ... });
Route::middleware(['auth', 'authorize:tenant'])->group(function () { ... });検証ロジックは AuthorizerRegistry に登録された Authorizer が担います。
カスタム Authorizer の登録
AppServiceProvider などで独自の Authorizer を登録できます。
php
use CodebaseJp\Lase\Auth\AuthorizerRegistry;
public function boot(AuthorizerRegistry $registry): void
{
$registry->register('admin', new MyCustomAdminAuthorizer());
}RestrictIpAddress
エイリアス: restrict-ip
config('lase.ip_restriction.enabled') が true の場合に、ホワイトリスト外の IP アドレスからのアクセスを 403 Forbidden で拒否します。
設定
dotenv
IP_RESTRICTION_ENABLED=true
IP_RESTRICTION_WHITELIST=203.0.113.1,203.0.113.2管理画面ルートにのみ適用することを推奨します。
php
Route::middleware(['restrict-ip'])->group(function () {
// 管理者向けルート
});