1

resources次の例では、Laravel フレームワークを使用してアプリケーションを開発しています。これは、Laravel フレームワークを介して実装される RESTful アプリケーションであると想定されています。

class CategoryController extends Controller
{

public function __construct() {

}


public function index()
{        
    return response()->json($this->getAll());      
}


public function create()
{
    //
}


public function store(Request $request)
{
    //
}

次の例を見てみましょう:storeやのようないくつかのメソッドcreateは、Web サイトの管理者によってのみ許可されていますが、indexメソッドはすべてのユーザーによって許可されており、この例のような多くのケースがあります。異なるタイプのユーザーは、コントローラーのいくつかのメソッドにしかアクセスできません。

この場合Multi Auth、Laravel を利用してユーザーを格納するための別のテーブルを作成するか、同じテーブルに別のタイプのユーザーを定義してmiddleware、特定の機能に適用されるユーザーのアクセスを処理することができます。

質問: どの方法をお勧めしますか? また、その理由も教えてください。

4

1 に答える 1

1

したがって、答えはさまざまなパラメーターに依存します。達成しようとしている目標は、Laravel Multi-Auth または任意の RBAC (Role Based Access Control) システムを使用して達成できます。

RBAC を使用する必要がある状況: アプリケーションが小さい場合は、ロール ベースのものを使用する必要があります。
たとえば、ある CMS で作業していて、各ポジション (マネージャー、開発者、マーケティング ヘッドなど) のテーブルを作成しないとします。したがって、RBAC は適切なオプションです。

Multi-Auth を使用する必要がある状況:目標が大きく、何らかの理由でユーザー ログインテーブルと管理者ログインテーブルを分離したい場合は、それを選択できます。

私が提案すること

私が提案するのは、Multi auth と RBAC の両方を使用することです (非常に大規模なアプリケーションに取り組んでいるか、構築しようとしている場合のみ)

しかし、あなたが説明したように、それを念頭に置いて、マルチ認証ではなく RBAC を使用することをお勧めします。

便利なリンク

Laravel Docs
RBAC (laravel で最も人気のある RBAC パッケージの 1 つ)
Multi Auth を使用したい場合は、このブログ投稿Multi-Auth with Laravel 5.2 に従ってください。

何か不足している場合、または回答を改善できる場合は、お気軽にコメントしてください。

于 2016-08-03T08:00:51.313 に答える