用户登录

在 HTTP 客户端可以测试一下,先打开 用户登录 这个请求,用 张三 这个用户请求登录,登录成功会给用户签发一个令牌,复制一下这个 token 的值。

再打开 更新内容 这个请求,配置一下这个请求的身份验证,类型选择 Bearer Token,把张三的令牌粘贴到这个 TOKEN 里面。

可以再配置一下请求的主体数据,还有请求的地址,比如要修改的内容资源的 ID 是 1 ,发送一下这个请求。得到的响应的状态码是 403,响应的信息是 您不能处理这个内容。

这是因为这个内容资源不是张三发布的。可以在数据库客户端这里观察一下,先打开 user 这个数据表,我这里张三这个用户的 id 是 6。

打开 post 数据表,刚才张三要修改的内容的 id 是 1 ,这个内容的作者的 ID 是 3, 可以在 user 数据表里找到对应的用户,这个用户是 李白。 也就是李白可以修改 id 等于 1 的这个内容。但是张三不行。

再看一下 post 这个数据表, 这里 id 等于 6 的这条内容数据是张三发布的,因为它的 userId 栏目的值是 6 。

回到 HTTP 客户端,修改一下请求的地址,换成 posts/6 ,意思就是要修改 id 等于 6 的这个内容资源。修改一下请求的主体内容,添加一个 title 属性,对应的值就是要修改之后的内容的标题。

发送一下这个请求,这次就成功更新了内容。

在数据库客户端观察一下,刷新一下应用的界面,你会发现 id 等于 6 的这个内容的标题就会是刚才我们修改之后的了。

下面可以再试一下管理员的权限,在应用里我们认为 id 等于 1 的这个用户就是应用里的超级管理员。这个用户是王皓。

在 HTTP 客户端,打开 用户登录 请求,修改一下请求登录的用户名,换成 王皓,发送一下这个请求。然后复制一下这个给王皓签发的令牌的值。

打开 更新内容 请求,修改一下请求的身份验证,删除掉 TOKEN 里的值,换成王皓这个用户的令牌。

然后修改一下请求主体数据里的 title 的值。

再发送一下这个请求,成功以后,回到数据库客户端,打开 post 表观察一下。你会发现,id 等于 6 的这条数据记录的标题就是刚才我们修改之后的了。

虽然这个内容的作者不是 王皓,但是 王皓 这个用户的 id 等于 1,所以他是应用里的超级管理员,可以做任何事情,不受访问控制的限制。

测试访问控制《 Node.js 服务端应用开发:访问控制 》

统计

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

社会化网络

关于

微信订阅号

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