Laravel中的Multi Auth使用或不使用

时间:2016-07-30 08:15:41

标签: php laravel-5.2 laravel-authorization

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

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方法,并且有很多情况,例如此示例 - 不同类型的用户只能访问Contrller的某些方法。

在这种情况下,我们可以从Laravel的Multi Auth中受益,并为存储用户创建不同的表,或者在同一个表中为用户定义不同的类型,并使用适用的middleware来处理用户的访问权限某些特定功能

问题: 您推荐哪种方式,请提供您的建议背后的原因

1 个答案:

答案 0 :(得分:1)

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

您应该使用RBAC的情况:如果您的应用程序很小,您应该选择基于角色的任何内容。
例如..让我们说你正在为一些CMS工作然后你不会为每个职位创建表(经理,开发人员,营销负责人等等)因此RBAC对你来说是个不错的选择

您应该使用Multi-Auth的情况:如果您的目标很大,并且您想要将用户登录表和管理员登录表分开无论出于何种原因,你都可以参加。

我的建议

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

但正如您所描述的那样,只要记住这一点,我建议您使用RBAC而非多用户身份验证。

一些有用的链接

Laravel Docs
RBAC(laravel最受欢迎的RBAC套餐之一)
如果您想参加Multi Auth,请关注此博文Multi-Auth with Laravel 5.2

如果我遗漏了某些内容或者答案可以通过任何方式得到改善,请随时发表评论。