hesto/multi-auth

Laravel 的多认证

v2.0.0 2017-09-15 08:20 UTC

README

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

版本指导

它做什么?

通过一个简单的命令,您可以为您的 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 hesto/multi-auth

步骤 2:添加服务提供者(仅适用于低于 5.5 的 Laravel)

您只想在本地开发中使用此软件包,因此您不想更新生产 providers 数组中的 config/app.php。相反,在 app/Providers/AppServiceProvider.php 中添加提供者,如下所示

public function register()
{
	if ($this->app->environment() == 'local') {
		$this->app->register('Hesto\MultiAuth\MultiAuthServiceProvider');
	}
}

步骤 3:在您的项目中安装 Multi-Auth 文件

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

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

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

替代方案

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

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

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

APP_DOMAIN=yourdomain.com

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

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

步骤 4:迁移新的模型表

php artisan migrate

步骤 5:试试看

访问: http://project_url/GuardName/login

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

选项

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

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

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

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

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

php artisan 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/{Guard}.php

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

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

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

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

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

    • 给定守卫的视图

变更日志

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

v1.0.7

  • 将 {guard}/logout 路由方法从 get 更改为 post
  • 添加了 {guard}.guest 中间件,如果用户已经登录,则从登录页面重定向
  • 登录后添加了主页视图

v1.0.6

  • auth:{guard} 中间件添加到 app\Providers\RouteServiceProvider.php。如果您已使用旧版本安装了多认证守卫,请手动添加中间件
Route::group([
    'middleware' => ['web', 'admin', 'auth:admin'], //you need to add the last middleware to array to fix it (version < v.1.0.6)
    'prefix' => 'admin',
    'as' => 'admin.',
    'namespace' => $this->namespace,
], function ($router) {
    require base_path('routes/admin.php');
});

v1.0.5

  • composer.json 修复

版本1.0.4

  • RouteServiceProvider中添加了路由组配置的名称和前缀
Route::group([
    'prefix' => 'admin', //if you have older version of package ( < v1.0.4) add this line manually,
    'as' => 'admin.', //if you have older version of package ( < v1.0.4) add this line manually (the DOT at the end is important),
    'middleware' => ['web', 'admin'],
    'namespace' => $this->namespace,
], function ($router) {
    require base_path('routes/admin.php');
});
  • 现在您可以为您的路由命名,而无需在routes/{guard}.php中将守卫的名称添加到路由名称中,您的路由将被命名(这是很重要的)
//New way
Route::get('/home', function () { // <- no {guard} prefix and it has proper name (admin.home)
    //content
})->name('home'); // http://your-project/admin/home

//Old way
Route::get('/admin/home', function () { // <- with {guard} prefix
    //content
})->name('admin.home'); // http://your-project/admin/home

版本1.0.3

  • 将默认认证的布局名称从app.blade.php更改为auth.blade.php

支持Beerpay

嘿,兄弟!请帮我一下,喝几杯🍻吧!

Beerpay Beerpay