用户登录

再创建一个中间件,让它可以在请求里面添加用户的用户角色 .. 执行一下 adonis make:middleware 名字可以是 Role ...

这个中间件可以作为应用的全局中间件 .. 打开 kernel.js ... 在 globalMiddleware 里面添加一个中间件 .. App/Middleware/Role ..

然后打开 Role 这个中间件 ..

在 handle 方法的 context 参数里面,把 request ... 还有 auth 拿出来用一下 ..

添加一个 roles .. 先让它等于一个空白的数组 ..

然后在 request 上面添加一个 roles .. 值就是定义的 roles 的值 ..

上面再判断一下 .. 如果 auth.user .. 表示用户已经登录了 .. 这样我们就让 roles 的值等于 await .. auth.user.getRoles() ..

else ... 如果用户没登录 .. 就让 roles 的值,等于 guest ..

试验

下面再找个地方试一下 ... 打开 routes.js ... 在 demo/acl 这个路由里面 ... 让这个处理方法直接返回 request 里的 roles ..

回到浏览器 ... 访问一下 demo/acl ..

返回的是 guest ... 因为我暂时还没登录 ..

再登录一下 ... 输入用户名 .. 密码 ... 登录 ...

然后再刷新一下 demo/acl 这个页面 ..

返回的就是当前登录用户的角色列表 ...

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

统计

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

社会化网络

关于

微信订阅号

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