在 Laravel 8 中创建管理员 table

Creating admins table separate in Laravel 8

我正在为用户创建一个 Laravel 项目。 Laravel 有它自己的 laravel/ui 包,但我也在创建它的管理面板,我对我应该为管理员做什么感到有点困惑。另外,我对管理面板的安全性感到困惑。所以我想到了2个解决方案:

  1. 在用户的table中添加一个名为status,的新列,如果其值为admin,则他可以访问管理面板;否则,重定向到主页。
  2. 创建一个单独的管理员 table 并改进 laravel/ui auth。为此,我找到了文档 here.

我该怎么办?甚至我在 .envconfig/database.php 中为 table 添加了 table prefix。恐怕 hackers/users 不应该访问管理面板。另外,请告诉我 table 前缀是否有利于安全,还是我应该删除 table 前缀?

您需要权限角色系统。

https://spatie.be/docs/laravel-permission/v4/introduction

这对你来说是个好决定。有了配置良好的路由,没有人无法访问数据库就无法访问管理面板。

例如,在面板页面中只有管理员可以访问:

Route::name('adminspace.')->group(['middleware' => ['role:admin']], function () {
        
    Route::view('/panel', 'pages.panel');
});