laravel-policies-and-authorization について
Laravel 開発者向けの認可スキルです。モデル操作には Policy、横断的な判定には Gate を使う方法に加え、ルート保護とテストも扱います。
主な機能
- 01モデル操作に Policy を使用
- 02横断的な判定に Gate を適用
- 03can ミドルウェアでルートを保護
- 04認可拒否のテスト
活用シーン
- 01モデル Policy の生成と登録
- 02リソースコントローラーのルート保護
- 03権限のないアクセスへの応答確認
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ noartem/ skills --skill laravel-policies-and-authorizationインストール後、Claude Code で/laravel-policies-and-authorizationを入力して読み込まれたか確認します。
詳細
ポリシーと認可
モデルごとのアクションにはポリシーを、横断的なチェックにはゲートを使用します。
コマンド
# Generate a policy
sail artisan make:policy PostPolicy --model=Post # or: php artisan make:policy PostPolicy --model=Post
# Apply in routes (resource controllers)
Route::resource('posts', PostController::class);
// In controller constructor
$this->authorizeResource(Post::class, 'post');
# One-off checks
$this->authorize('update', $post); // in controller
Gate::allows('manage-billing', $user); // ad-hoc gate
パターン
- リソースポリシーのメソッドを使用します:
viewAny, view, create, update, delete, restore, forceDelete - インラインチェックよりポリシーメソッドを優先します。コントローラーをすっきり保てます
- ポリシーを
AuthServiceProviderに登録します - ルートを手軽に保護するには
canミドルウェアを使用します:->middleware('can:update,post') - テストでは、拒否されるケースに対して
actingAs($user)->get(...)->assertForbidden()をアサートします
コメント
Markdown 対応