用户登录

我们可以把权限列表添加到请求里 .. 如果用户登录了,这个权限列表就是当前登录的用户的权限 .. 用户如果没登录的话,可以给用户提供一些默认的权限 ..

这个功能可以交给一个中间件完成... 因为中间件基本上就是一些修改请求用的东西 .. 在命令行下面,执行一下 adonis make:middleware . 名字是 Permission ..

然后打开项目的 kernel.js ... 在 globalMiddleware 里面添加一个中间件 .. App/Middleware/Permission ..

打开刚才创建的这个 Permission 中间件 .. 在 handle 方法里面,它的 context 参数里,把 request .. 还有 auth 拿出来用一下 ..

方法的一开始,先 let 一个 permissions ,让它等于一个空白的数组 ..

我们要在 request 上面添加一个 permissions 属性 ... 它的值就是定义的 permissions 的值 ... 这个 permissions 具体的值,我们要判断一下 ... 如果 auth.user ... 如果用户登录了 ... permissions .. 它的值就是 await ... auth.user.getPermissions() .. 也就是当前登录的用户拥有的权限 ..

else ... 在这里可以设置一下未登录的用户的权限 .. 暂时先简单处理一下 .. 让 permissions 等于一个数组 .. 数组里面是权限的列表 .. 比如添加一个 read post

现在可以再去试一下 .. 打开 routes.js .. 找到 demo/acl 这个路由 ... 在路由的处理方法里面,可以把 request 解构出来用一下 ..

然后让方法 reutrn request 里面 permissions ...

回到浏览器 .. 访问一下 demo/acl 页面 ... 页面上显示一个 read post 权限 ..这个是我们给没登录的用户默认设置的权限 ..

下面可以再去登录一下 ... 打开登录页面 ... 输入用户名 .. 密码 .. 然后登录 ...

然后回来再访问一下 demo/acl .. 现在用户已经登录了,所以返回的权限列表就是当前登录用户的权限 ...

Middleware:在请求中添加权限列表(Permission)《 Node.js 应用:权限控制 #2 》

统计

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

社会化网络

关于

微信订阅号

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