Lumen は、すぐに使用できる認証サービスを提供するだけでなく、承認ロジックとリソースのアクセス制御のための便利な方法も提供します。さまざまな方法や補助機能を使用して、認可ロジックを編成および管理できます。
一般に、Lumen での承認の使用は Laravel での使用と同じです。ここでは、違いについてのみ説明します。詳しい使用方法については、完全な Laravel ドキュメントを参照してください。
パーミッション (能力) を定義する
Laravel と比較して、Lumen の認可の使用における主な違いは、Lumen では単に AuthServiceProvider Gate ファサードでパーミッションを使用できることです。権限を定義するには:
Gate::define('update-post', function ($user, $post) { return $user->id === $post->user_id;});
ポリシーを定義する (Policies)
Laravel とは異なり、Lumen には AuthServiceProvider に属性配列がありません。ただし、サービスプロバイダーのブートメソッドのゲートファサードでポリシーメソッドを呼び出すことはできます:
Gate::policy(Post::class, PostPolicy::class);
ポリシーの詳細について詳しくは、Laravel の完全なドキュメントを参照してください。
権限を確認する
完全なLaravelフレームワークと同じように権限を確認できます。まず、Gate ファサードを使用します。このファサードを使用する場合は、bootstrap/app.php ファイルで有効になっていることを確認してください。現在認証されているユーザーは自動的に認証コールバックに渡されるため、User インスタンスを allowed メソッドに渡す必要はないことに注意してください:
if (Gate::allows('update-post', $post)) { //}if (Gate::denies('update-post', $post)) { abort(403);}
もちろん、指定されたユーザーが指定されたアクセス許可を持っているかどうかを確認することもできます:
れーれー