alaminfirdows/laravel-multi-auth

为 Laravel 项目提供多认证功能的包。

v0.0.1-alpha 2019-10-23 15:33 UTC

This package is auto-updated.

Last update: 2024-09-27 05:34:26 UTC


README

  • php artisan laravel-multi-auth:install {guard} -f
  • php artisan laravel-multi-auth:install {guard} -f --domain
  • php artisan laravel-multi-auth:install {guard} {service} -f --lucid

它做什么?

这是一个简单的包,用于在 Laravel 6.* 项目中创建多认证功能。通过运行一些简单的命令,您可以为 Laravel 项目设置多认证。该包安装

  • 模型
  • 迁移
  • 控制器
  • 通知
  • 路由
    • routes/web.php
      • {guard}/login
      • {guard}/register
      • {guard}/logout
      • 密码重置路由
        • {guard}/password/reset
        • {guard}/password/email
    • routes/{guard}.php
      • {guard}/home
  • 中间件
  • 视图
  • 守卫
  • 提供者
  • 密码经纪人
  • 设置

使用方法

步骤 1: 通过 Composer 安装

composer require alaminfirdows/laravel-multi-auth

步骤 2: 在您的项目中安装 Multi Auth

php artisan laravel-multi-auth:install {singular_lowercase_name_of_guard} -f

// Examples
php artisan laravel-multi-auth:install admin -f
php artisan laravel-multi-auth:install employee -f
php artisan laravel-multi-auth:install customer -f

注意:如果您不提供 -f 标志,它将无法工作。这是防止意外激活的保护措施。

替代方案

如果您想在子域中安装 Multi-Auth 文件,必须传递 --domain 选项。

php artisan laravel-multi-auth:install admin -f --domain
php artisan laravel-multi-auth:install employee -f --domain
php artisan laravel-multi-auth:install customer -f --domain

为了正确使用此功能,您应该在 .env 文件中添加一个密钥

APP_DOMAIN=yourdomain.com

这将允许我们在路由文件中使用它,并在 Laravel 路由系统中的域功能前加上前缀。

使用方法如下: ['domain' => '{guard}.' . env('APP_DOMAIN')]

步骤 3: 迁移新的模型表

php artisan migrate

步骤 4: 尝试使用

前往: http://project_url/GuardName/login

示例: http://myproject.dev/customer/login

选项

如果您不想使用模型和迁移,请使用 --model 标志。

php artisan laravel-multi-auth:install admin -f --model

如果您不想使用视图,请使用 --views 标志。

php artisan laravel-multi-auth:install admin -f --views

如果您不想在 routes/web.php 文件中使用路由,请使用 --routes 标志。

php artisan laravel-multi-auth:install admin -f --routes

注意

如果您想更改 guard 登出后的重定向路径,请在您的 {GuardName}\Auth\LoginController 中添加并覆盖以下方法

/**
 * Get the path that we should redirect once logged out.
 * Adaptable to user needs.
 *
 * @return string
 */
public function logoutToPath() {
    return '/';
}

此包更改和添加的文件

  • config/auth.php

    • 添加守卫、提供者和密码
  • app/Http/Providers/RouteServiceProvider.php

    • 注册路由
  • app/Http/Kernel.php

    • 注册中间件
  • app/Http/Middleware/

    • 每个守卫的中间件
  • app/Http/Controllers/{Guard}/Auth/

    • 新控制器
  • app/Models/{Guard}.php

    • 新模型
  • app/Notifications/{Guard}/ResetPassword.php

    • 重置密码通知
  • database/migrations/

    • 新模型的迁移
  • routes/web.php

    • 注册路由
  • routes/{guard}.php

    • 给定守卫的路由文件
  • resources/views/{guard}/

    • 给定守卫的视图

变更日志

注意:在安装包的新版本后,不要再次安装具有相同守卫的配置。因此,如果您已经安装了 admin 守卫,在更新包到最新版本后不要再次安装它。

v0.0.1-alpha

  • 将所有过时的字符串辅助函数更新到 Laravel 6.0
  • 重新格式化控制器路径和命名空间
  • 重新格式化模型路径和命名空间

特别感谢 Piotr Łosiak (Hesto)

我从 hesto/multi-auth 中获得了灵感来创建此包。