我们正在使用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)
{
//
}
我们来看下面的例子:
某些方法(如store
和create
)仅允许网站的管理员使用,但所有用户都允许使用index
方法,并且有很多情况,例如此示例 - 不同类型的用户只能访问Contrller的某些方法。
在这种情况下,我们可以从Laravel的Multi Auth
中受益,并为存储用户创建不同的表,或者在同一个表中为用户定义不同的类型,并使用适用的middleware
来处理用户的访问权限某些特定功能
问题: 您推荐哪种方式,请提供您的建议背后的原因
答案 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
如果我遗漏了某些内容或者答案可以通过任何方式得到改善,请随时发表评论。