繁体   English   中英

保护Laravel中用于自定义身份验证的自定义

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM