delgont/auth
最新稳定版本:v1.3.0
Composer 安装命令:
composer create-project delgont/auth
包简介
Larevel User - Permissions -Roles
关键字:
README 文档
README
Laravel Authentication Backend
Composer Laravel Framework 6.0+
Introduction
Laravel authentication backend that provides the following features.
- Email or username authentication
- Access control using roles and permissions.
- Access control using roles and permissions.
Installation
composer require delgont/auth
php artisan vendor:publish --multiauth-config
Multi Username Authentication
username email
- Login Controller.
Create your custom login controller and use
Delgont\Auth\Concerns\MultiAuthCredentials. this will overide the credentials function
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Delgont\Auth\Concerns\MultiAuthCredentials;
use Illuminate\Http\Request;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller - Multi Authentication using email or username
|--------------------------------------------------------------------------
| Use Delgont\Auth\Concerns\MultiAuthCredentials trait
| You must override the credentials and username functions as shown below
|
*/
use AuthenticatesUsers, MultiAuthCredentials;
/**
* Where to redirect users after login.
*
* @var string
*/
protected $redirectTo = '/';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest')->except('logout');
}
protected function credentials(Request $request)
{
return $this->multiAuthCredentials($request);
}
public function username()
{
return 'username_email';
}
}
- Your login View.
<input id="username_email" type="text" class="form-control @error('username_email') is-invalid @enderror" name="username_email" value="{{ old('username_email') }}" required autocomplete="username_email" autofocus> @error('username_email') <span class="invalid-feedback" role="alert"> <strong>{{ $message }}</strong> </span> @enderror
Access Control
Regulate access to your laravel systems resources, features and functionality.
Access control basing on user type
- add
usertype&user_idcolumns to your authenticatable migration
<?php .............. Schema::table('users', function (Blueprint $table) { $table->nullableMorphs('user'); });
- Add
Delgont\Auth\Concerns\HasUserTypesTrait to user model.
<?php namespace App; use Laravel\Passport\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Delgont\Cms\Notifications\Auth\ResetPassword as ResetPasswordNotification; use Delgont\Auth\Concerns\HasUserTypes; class User extends Authenticatable { use Notifiable, HasUserTypes, ModelHasPermissions, ModelHasSingleRole;
- Your usertype models
<?php namespace App; use Illuminate\Database\Eloquent\Model; class Customer extends Model { public function user() { return $this->morphOne('App\User', 'user'); } }
User can have single role or multiple roles
Using role middleware to restrict access
Use Delgont\Auth\Concerns\ModelHasRoles trait on your authenticable model
<?php namespace App; use Laravel\Passport\HasApiTokens; use Illuminate\Notifications\Notifiable; use Illuminate\Contracts\Auth\MustVerifyEmail; use Illuminate\Foundation\Auth\User as Authenticatable; use Delgont\Auth\Concerns\ModelHasRoles; class User extends Authenticatable { /* | Use Delgont\Auth\Concerns\ModelHasRoles trait | */ use ModelHasRoles; }
Assigning roles
# Giving role using role names $model->assignRole(['admin','accountant']); auth()->user()->assignRole(['admin','accountant']);
Protecting routes using the role middleware
Route::get('/test', 'TestController@test')->middleware('role:admin'); Route::get('/test', 'TestController@test')->middleware('role:admin|hello');
Using permission middleware to restrict access
Route::get('/momo', 'Momo@index')->name('momo')->middleware('permission:access_momo_dashboard');
Configure your default permissions in the permissions configuration file
<?php
return [
'delimiter' => '|',
'permissions' => [
'manage_users',
'access_momo_dashbaord'
]
];
`
Artisan Commands
Roles
php artisan make:roleRegistrar Roles/ExampleRoleRegistrar
php artisan role:sync
delgont/auth 适用场景与选型建议
delgont/auth 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 23 次下载、GitHub Stars 达 0, 最近一次更新时间为 2023 年 07 月 19 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「laravel admin」 「laravel dashboard package」 「laravel user permissions」 「laravel user roles」 「Delgont authenticator」 「Laravel who are you」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 delgont/auth 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 delgont/auth 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 delgont/auth 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
2lenet/EasyAdminPlusBundle
Analysis module for finding problematical shop data.
A short description of what your package does
Scout support for MoonShine
Production-ready Laravel Prometheus metrics package with built-in collectors for HTTP, database, cache, queue, events, errors, filesystem, and mail monitoring
Laravel Package for integrating Tabler template and this package is Laravel Mix friendly.
统计信息
- 总下载量: 23
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2023-07-19
