hesto / multi-auth
Laravel 的多认证
Requires
- php: >=5.5.0
- hesto/core: 2.0.*
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
- routes/web.php
- 中间件
- 视图
- 守卫
- 提供者
- 密码经纪人
- 设置
用法
步骤 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
嘿,兄弟!请帮我一下,喝几杯🍻吧!