在 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,所以他是应用里的超级管理员,可以做任何事情,不受访问控制的限制。