導入
Webアプリケーションを開発する場合、ユーザーアクセス権と役割の管理は、アプリケーションセキュリティを確保するための重要なステップです。 Laravelのミドルウェアは、アプリケーションの権限と役割を制御するためのシンプルで柔軟な方法を提供します。この記事では、例を介してLaravelミドルウェアを使用してアクセス制御と役割管理を実装する方法を示します。
1。ミドルウェアとは何ですか
ミドルウェアは、Laravelフレームワークの重要な機能であり、ルーティング処理に到達する前または応答が戻る前にリクエストを処理するために使用されます。 Laravelでは、ミドルウェアを使用して、ユーザーの身元を確認し、ユーザーの許可を確認し、その他の操作を確認して、アプリケーションのセキュリティを確保することができます。
2。ミドルウェアとアプリケーションの承認管理
実際の開発では、異なるユーザーのアクセス権を管理して、認定コンテンツのみにアクセスできるようにする必要があります。 Laravel Middlewareは、強力な許可管理メカニズムを提供します。
ミドルウェアを作成します
まず、ユーザーのアクセス許可を確認するためにミドルウェアを作成する必要があります。ミドルウェアは、次のコマンドを使用して作成できます。
PHP Artisan Make:Middleware CheckPermission
このコマンドは、 `app/http/middleware`ディレクトリに「checkpermission.php」という名前のファイルを作成します。
許可検証ロジックを実装します
次に、「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エラーが返されます。
ミドルウェアを登録します
ミドルウェアが有効になるためには、 `kernel.php`ファイルに登録する必要があります。たとえば、「$ routemiddleware」アレイでミドルウェアのエイリアスを指定できます。
守るされた$ routemiddleware = [
//彼のミドルウェア...
'can.access' => \ app \ http \ middleware \ checkpermission :: class、
];
これにより、ルートのエイリアスを使用してミドルウェアを適用できます。
アプリケーションミドルウェア
許可確認を必要とするルートでは、ミドルウェアのエイリアスを介してミドルウェアを適用できます。たとえば、次のコードは、ルートに「can.access」ミドルウェアを適用する方法を示しています。
ルート:: get( '/admin/dashboard'、function(){
//コントロールロジック}) - > middleware( 'can.access');
このコードにより、「管理者」許可を持つユーザーのみが/admin /dashboardページにアクセスできるようになります。
3。ミドルウェアとアプリケーションの役割管理
許可制御に加えて、Laravelミドルウェアはロール管理の実装にも役立ちます。開発プロセス中に、さまざまな役割に基づいてユーザーアクセス権を制御する必要があることがよくあります。
ロール検証ミドルウェアを作成します
以前に作成された「CheckPermission」ミドルウェアに基づいて変更でき、ロール検証のロジックを追加できます。これが例です:
パブリック関数ハンドル($ request、closure $ next、$ role)
{
//ユーザーの役割を確認するif(!auth() - > user() - > hasrole($ role)){
中止(403、 '不正アクション。');
}
return $ next($ request);
}
このコードでは、検証する必要があるロールを渡すために$の役割パラメーターを追加します。
ロール検証ミドルウェアを登録します
同様に、「kernel.php`ファイルにロール検証ミドルウェアを登録し、エイリアスを指定する必要があります。
守るされた$ routemiddleware = [
//彼のミドルウェア...
'has.role' => \ app \ http \ middleware \ checkpermission :: class、
];
役割検証ミドルウェアを適用します
役割検証を必要とするルートでは、エイリアスを介して役割検証ミドルウェアを適用できます。例えば:
ルート:: get( '/admin/dashboard'、function(){
//アクセス制御ロジック}) - > middleware( 'has.role:admin');
このように、「管理者」の役割を持つユーザーのみが/管理者 /ダッシュボードページにアクセスできます。
結論は
Laravelミドルウェアを使用して、アプリケーションの許可制御と役割管理を簡単に実装します。ミドルウェアは、ユーザーがアクセス許可または役割を持つページのみにアクセスできるようにするための柔軟で効率的な方法を提供します。この記事の導入が、Laravelミドルウェアをよりよく理解して使用するのに役立つことを願っています。