1

我们正在使用 Laravel 框架开发一个应用程序,它应该是一个通过resourcesLaravel 框架实现的 RESTful 应用程序,给出以下示例:

class CategoryController extends Controller
{

public function __construct() {

}


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


public function create()
{
    //
}


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

举个例子: 一些方法,比如storecreate,只有网站管理员允许,但是index方法是所有用户都允许的,这样的例子太多了——不同类型的用户只能访问某个控制器的某些方法。

在这种情况下,我们既可以受益于Multi AuthLaravel 并创建不同的表来存储用户,也可以为同一个表中的用户定义不同的类型并处理用户的访问,middleware这些访问适用于某些特定的功能

问题: 您推荐哪种方式,并请说明您的建议背后的原因

4

1 回答 1

1

因此,答案取决于各种参数。您尝试实现的目标可以使用 Laravel Multi-Auth 或任何 RBAC(基于角色的访问控制)系统来实现。

应该使用 RBAC 的情况:如果您的应用程序很小,则应该使用任何基于角色的东西。
例如.. 假设您正在开发一些 CMS,那么您不会为每个职位(经理、开发人员、营销主管等)创建表格,因此 RBAC 对您来说是个不错的选择。

应该使用多重身份验证的情况:如果您的目标很大,并且出于任何原因想要分离用户登录表和管理员登录表,您可以这样做。

我的建议

我建议同时使用 Multi auth 和 RBAC(仅当您正在开发或尝试构建非常大规模的应用程序时)

但是正如您所描述的,请记住这一点,我建议您使用 RBAC 而不是多身份验证。

一些有用的链接

Laravel Docs
RBAC(laravel 最受欢迎的 RBAC 包之一)
如果您想进行 Multi Auth,请关注这篇博文 Multi-Auth with Laravel 5.2

如果我遗漏了什么或者可以以任何方式改进答案,请随时发表评论。

于 2016-08-03T08:00:51.313 回答