PHP Artisan Make:Middleware CheckPermissionこのコマンドは、 `app/http/middleware`ディレクトリに「checkpermission.php」という名前のファイルを作成します。
<?php
namespace App\Http\Middleware;
use Closure;
class CheckPermission
{
public function handle($request, Closure $next)
{
// ユーザー許可を確認します
if (!auth()-> user() - > haspermission( 'admin')){
中止(403、 '不正アクション。');
}
return $ next($ request);
}
}
上記の例では、ユーザーは指定されたページにアクセスするための「管理者」許可を持っている必要があると想定されています。そうしないと、403エラーが返されます。
守るされた$ routemiddleware = [
//彼のミドルウェア...
'can.access' => \ app \ http \ middleware \ checkpermission :: class、
];
これにより、ルートのエイリアスを使用してミドルウェアを適用できます。
ルート:: get( '/admin/dashboard'、function(){
//コントロールロジック}) - > middleware( 'can.access');
このコードにより、「管理者」許可を持つユーザーのみが/admin /dashboardページにアクセスできるようになります。
パブリック関数ハンドル($ request、closure $ next、$ role)
{
//ユーザーの役割を確認するif(!auth() - > user() - > hasrole($ role)){
中止(403、 '不正アクション。');
}
return $ next($ request);
}
このコードでは、検証する必要があるロールを渡すために$の役割パラメーターを追加します。
守るされた$ routemiddleware = [
//彼のミドルウェア...
'has.role' => \ app \ http \ middleware \ checkpermission :: class、
];
ルート:: get( '/admin/dashboard'、function(){
//アクセス制御ロジック}) - > middleware( 'has.role:admin');
このように、「管理者」の役割を持つユーザーのみが/管理者 /ダッシュボードページにアクセスできます。