laravel - Laravel Nova 检查管理员是否登录
问题描述
我需要检查 Laravel Nova 管理员是否从简单的 Laravel 控制器登录。默认Auth::check( )
在这里不起作用。这甚至可能吗?
解决方案
来自 Nova文档站点:
auth
Nova 使用配置文件中定义的默认身份验证保护。如果你想自定义这个守卫,你可以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()
函数中的验证来定义哪些用户可以访问管理面板。
希望这可以帮助。
推荐阅读
- python - Killing shell=True 进程导致 ResourceWarning: subprocess is still running
- sql - 使用 INNER JOIN 删除重复项
- php - 回显时的php值数学方程
- java - 没有连接的连接列的休眠选择ID
- sql - 更新查询上的 MSSQL 排序规则
- android - 保存进程完全销毁时的界面状态
- caching - 如何在 Mac OS 的 aerospike 中创建命名空间?
- excel - Excel 计划与今天日期后实际停止的实际行
- javascript - 当事件不是在整个身体上发生时,应在 div 内进行滚动
- javascript - Gulp“不支持的 gulp 版本”问题