[英]Guard Customization in Laravel for Custom Authentication
我已通过Laravel文档进行自定义身份验证。 我对Guard身份验证的研究如下:
保护者自定义您还可以自定义用于认证和注册用户的“保护者”。 首先,请在LoginController,RegisterController和ResetPasswordController上定义保护方法。 该方法应返回一个保护实例:
use Illuminate\Support\Facades\Auth;
protected function guard()
{
return Auth::guard('guard-name');
}
上一部分来自Laravel文档。 我已经开发了CRUD操作项目,并且该操作应仅由管理员级别的用户执行。 为此,我认为后卫定制将是更好的选择。 在上述情况下,这里的“后卫名称”是什么? 被授予管理员级别权限的用户名是吗?
还有一种情况,管理员可以将管理员的权限分配给其他用户。 由于缺少Laravel文档中的详细说明,我无法弄清楚在上述情况下如何使用防护。 还有什么更好的选择?
guard-name
是您的自定义防护的名称。 关于如何添加自己的防护措施,还有一个完整的示例( https://laravel.com/docs/5.6/authentication#adding-custom-guards )。
保护人员在那里定义不同的身份验证方法(例如,基于会话或基于令牌的身份验证)。 对我来说,听起来您正在寻找Laravel的大门和政策。 使用这些资源,您可以授权用户使用给定的资源。 https://laravel.com/docs/5.6/authorization
使用策略时,您可以定义过滤器。 该过滤器将在策略上的任何其他方法之前调用。 因此,使用before
过滤器,您可以检查用户是否为管理员。
public function before($user, $ability)
{
if ($user->isSuperAdmin()) {
return true;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.