用户登录

我们可以给用户分配角色,不同的角色可以拥有一些权限,这样用户就可以通过角色得到一些权限 .. 用户的角色可以放在一个单独的数据表里面 .. 保存角色与相关的权限也需要一个数据表 .. 先去创建一个角色数据表 ..

在命令行下面,执行一上 adonis make:model Role -m .. 创建一个叫 Role 的模型,随便带着一个 migration ..

找到创建的 migration ..

这个 migration 会创建一个叫 roles 的数据表,在这个表里可以存储角色相关的数据 .. 里面可以添加一个新的字段 ... 类型是 string ... 字段的名字是 name ,它里面可以保存用户角色的名字 ..

再用一下 unique() 让名字的值在这个表里必须是唯一的 ..

关系

然后找到 Role 这个模型,在它里面可以描述一下它跟权限模型之间的关系,添加一个方法... 名字是 permissions .. return 的是 this .. belongsToMany .. 模型是 App/Models/Permission ..

再添加一个 pivotTable .. 设置一下保存它们的关系的中间表的名字 .. 设置成 role_permission .. 最后再用一个 withTimestamps .. 因为在这个中间表里我想使用时间字段,记录一下关系的创建还有更新的时间 ..

中间表

下面再去创建这个中间表 .. 在命令行下面,执行一下 adonis make:migration .. 名字是 role_permission ..

在项目里面找到这个 migration ..

它要创建的数据表的名字叫 role_permission ... 回滚这个 migration 的时候,会删除掉 role_permission 这个数据表 ..

它的结构跟之前我们创建的 user_permission 有点像,可以打开这个 migration ... 复制一下 up 方法里的东西 ..

粘贴到这个 role_permission 的 up 方法里面 ..

再稍微修改一下 .. 里面需要一个 role_id 字段 ... 再把它设置成一个外键 ... 相关的就是 roles 表里面的 id 这个字段 ...

再回到命令行 ... 运行一下 migration ... adonis migration:run ...

成功以后,可以打开数据库客户端,检查一下应用的数据库 .. 这里会多出一个 roles 数据表 ... 里面可以保存创建的用户角色 ..

在 role_permission 这个表里面,可以保存角色与权限的关系 ...

创建角色数据表与角色权限中间表《 Node.js 应用:权限控制 #2 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点