首页 > 解决方案 > Laravel Nova 检查管理员是否登录

问题描述

我需要检查 Laravel Nova 管理员是否从简单的 Laravel 控制器登录。默认Auth::check( )在这里不起作用。这甚至可能吗?

标签: laravellaravel-nova

解决方案


来自 Nova文档站点

authNova 使用配置文件中定义的默认身份验证保护。如果你想自定义这个守卫,你可以guard在 Nova 的配置文件中设置值。

此外,在生产中,您需要自定义授权用户进入 Nova 管理面板的方式。这是在您的gate()方法中完成的app/Providers/NovaServiceProvider.php。例如:

app/Providers/NovaServiceProvider.php

protected function gate()
{
    Gate::define('viewNova', function ($user) {
        return $user->isAdmin(); // <----
    });
}

因此,如果登录用户符合此条件(在示例中:$user->isAdmin() == true),您可以说“Nova Admin”已登录。

当然,如果你的应用中包含了 ACL 系统,你可以只检查登录的用户是否有特定的角色(或权限),然后这个角色可以作为 Novagate()函数中的验证来定义哪些用户可以访问管理面板。

希望这可以帮助。


推荐阅读