toddish / verify
为 Laravel 4/5 提供的简单身份验证包。它具有角色、权限、密码加盐,并且完全可扩展。
Requires
- php: >=5.5.9
- illuminate/support: 5.1.*
This package is not auto-updated.
Last update: 2024-09-14 14:29:37 UTC
README
Laravel 5.1 的简单角色/权限身份验证包
对于 Laravel 5.0,请使用 Verify 4.*。
对于 Laravel 4.2,请使用 Verify 3.*。
对于 Laravel < 4.2,请使用 Verify 2.*。
- 使用盐值的加密密码存储
- 基于角色/权限的身份验证
- 智能处理错误的异常
- 可配置/可扩展
- MIT 协议许可
安装
将 Verify 添加到你的 composer.json 文件
"require": {
"toddish/verify": "~5"
}
现在,从项目的根目录在命令行中运行 composer update
composer update
注册包
将 Verify 服务提供者添加到你的 config/app.php 配置文件
'providers' => [ 'Toddish\Verify\Providers\VerifyServiceProvider ],
更改驱动
然后在 app/config/auth.php 中将你的 Auth 驱动更改为 'verify'
'driver' => 'verify',
如果你想在使用 Auth::user() 时加载 Verify 的 User 模型,可以将 'model'
的值更改为 'Toddish\Verify\Models\User'
。
或者,你可以简单地创建自己的 User 模型,并扩展 Verify 的
use Toddish\Verify\Models\User as VerifyUser; class User extends VerifyUser { // Code }
发布资源
从项目的根目录在命令行中运行此命令
php artisan vendor:publish
或者,如果你想单独发布 Verify 的部分
php artisan vendor:publish --provider="Toddish\Verify\Providers\VerifyServiceProvider" --tag="config"
可用的标签是 config、migrations 和 seeds。
迁移
现在迁移 Verify 的数据库表。从项目的根目录在命令行中运行这些命令
php artisan migrate
php artisan db:seed
你现在应该已经导入了所有表,包括一个名为 admin 的示例用户,密码为 password。
使用方法
该包故意设计得轻量级。你可以像添加其他模型一样添加用户、角色和权限。
$user = new Toddish\Verify\Models\User; $role = new Toddish\Verify\Models\Role; $permission = new Toddish\Verify\Models\Permission;
等等。
所有模型都在命名空间 'Toddish\Verify\Models' 中。
关系如下
- 角色属于多个用户
- 用户属于多个角色
- 角色属于多个权限
- 权限属于多个角色
关系也通过 Eloquent ORM 处理
$role->permissions()->sync([$permission->id, $permission2->id]);
有关关系的更多信息,请参阅 Laravel 5 Eloquent 文档。
基本示例
// Create a new Permission $permission = new Toddish\Verify\Models\Permission; $permission->name = 'delete_user'; $permission->save(); // Create a new Role $role = new Toddish\Verify\Models\Role; $role->name = 'Moderator'; $role->level = 7; $role->save(); // Assign the Permission to the Role $role->permissions()->sync([$permission->id]); // Create a new User $user = new Toddish\Verify\Models\User; $user->username = 'Todd'; $user->email = 'todd@toddish.co.uk'; $user->password = 'password'; // This is automatically salted and encrypted $user->save(); // Assign the Role to the User $user->roles()->sync(array($role->id)); // Using the public methods available on the User object var_dump($user->is('Moderator')); // true var_dump($user->is('Admin')); // false var_dump($user->can('delete_user')); // true var_dump($user->can('add_user')); // false var_dump($user->level(7)); // true var_dump($user->level(5, '<=')); // false
Auth::verify()
Verify 提供了一个新的登录方法,Auth::verify()
。
此方法与 Auth::attempt()
使用相同的参数,主要区别是它返回一个字符串,并检查用户是否被禁用或验证。
use Toddish\Verify\Helpers\Verify; switch (Auth::verify($credentials)) { case Verify::SUCCESS: // Successful log in break; case Verify::INVALID_CREDENTIALS: case Verify::UNVERIFIED: case Verify::DISABLED: // Error! break; }
文档
有关完整文档,请参阅 http://docs.toddish.co.uk/verify。