t3chnik / verify-l4-mongolid
Laravel 4 简单的认证包。它具有角色、权限、密码加盐功能,并且可以完全扩展。
Requires
- php: >=5.3.0
- illuminate/support: 4.0.x
This package is not auto-updated.
Last update: 2024-09-23 13:26:02 UTC
README
Laravel 4 的简单角色/权限认证包
- 使用盐加密的密码存储
- 基于角色/权限的认证
- 智能处理错误的异常
- 可配置/可扩展
安装
将 Verify 添加到您的 composer.json 文件中
"require": {
"toddish/verify": "2.0.*"
}
现在,从项目的根目录运行命令行中的 composer update
composer update
注册包
将 Verify 服务提供者添加到您的 app/config/app.php
配置文件中
'providers' => array( 'Toddish\Verify\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 config:publish toddish/verify
这将把 Verify 的配置发布到 app/config/packages/toddish/verify/
如果您想为 Verify 的数据库表设置前缀,还可以更改 'db_prefix'
的值
迁移
现在迁移 Verify 的数据库表。从项目根目录运行以下命令
php artisan migrate --package="toddish/verify"
您现在应该已经导入了所有表,包括一个名为 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(array($permission->id, $permission2->id));
有关关系的更多信息,请参阅 Laravel 4 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(array($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
文档
有关完整文档,请参阅 http://docs.toddish.co.uk/verify-l4。