bmatovu/multi-auth

Laravel 多认证

v12.1.0 2024-04-23 17:29 UTC

README

Total Downloads Latest Stable Version Quality Coverage Unit Tests

此包为您提供了在应用程序中分离用户区域的能力。

例如,一个拥有客户、卖家和管理员用户区域的电子商务应用程序,使用 认证守卫

先决条件

此包仅扩展官方的 laravel/breeze 快速启动工具包,它不会重新生成前端资源 [js, css - tailwind, vite, ...]

因此,您需要在使用 Breeze 搭建基本认证之后使用它。

破坏性更改

对于旧版本(Laravel v9及以下)请参阅 v11

安装

composer require bmatovu/multi-auth --dev

搭建

php artisan multi-auth:install admin

注册服务提供者

config/app.php

  'providers' => [
      /*
      * Package Service Providers...
      */
+     App\Modules\Admins\AdminServiceProvider::class,
  ],

在 Vite 中注册 JS 入口点(Inertia - Vue, React)

vite.config.js

  export default defineConfig({
      plugins: [
          laravel({
-             input: 'resources/js/app.js',
+             input: [
+                 'resources/js/app.js',
+                 'resources/js/Admins/app.js',
+             ],
-             ssr: 'resources/js/ssr.js',
+             ssr: [
+                 'resources/js/ssr.js',
+                 'resources/js/Admins/ssr.js',
+             ],
              refresh: true,
          }),
          ...
      ],
  });

了解更多关于 Inertia 服务器端渲染 的信息

重新编译前端资源

npm run build

运行数据库迁移

php artisan migrate

分离用户区域的可能方法

使用子域名

通过子域名分离用户区域。

我将为每个子域名使用单独的存储库

使用 URL*

根据 URL 分离用户区域。通过认证守卫限制访问

* 此包提供的内容

使用角色

根据用户的角色和权限限制访问

对于大型项目,我会避免使用这种方法,因为它更复杂,难以维护