我有一个机器人可以发帖到帖子里。有时它想先上传一张图片,然后把它包含在帖子里。
据我所知,没有API范围可以访问/uploads,所以我必须给它一切访问权限。
定义一个标准范围来做到这一点(a),或者允许一个具有管理员定义端点访问权限的自定义范围(b),是否合理?
我有一个机器人可以发帖到帖子里。有时它想先上传一张图片,然后把它包含在帖子里。
据我所知,没有API范围可以访问/uploads,所以我必须给它一切访问权限。
定义一个标准范围来做到这一点(a),或者允许一个具有管理员定义端点访问权限的自定义范围(b),是否合理?
您试过了吗?我认为可以发帖的用户就可以上传。
呃,是的,否则我不会发帖?具体来说,这需要 /uploads 端点而不是 /posts,所以响应是 403。
这有什么用吗?
谢谢,但并非如此。
我的上传功能(使用 /uploads 端点)可以正常工作。但是,我授予此功能所需的唯一方法是授予 API 密钥 所有 权限,这显然存在安全风险。
我所要求的是一个包含 /uploads 的 API 权限范围——如果它属于“写入帖子”的一部分,那对我来说就没问题,但也可能存在将其设为独立项的原因。如果不行(这可能是一个普遍的好主意),我希望能够定义一个包含我希望允许的特定内容的自定义范围。
在我看来,创建一个上传范围听起来是个好主意,当然#pr-welcome。相关的更改将在此处:
另外,这里有一个新的翻译字符串。
我认为这最适合作为"uploads": "create"
@RogerBW 你愿意/能够在这里做一个PR吗?如果可以,请继续,然后在主题中发布链接。
嗯,不是每个人在发帖前都会做这么明显的事情。抱歉!看起来至少还有其他人(我认为他对这个问题比我更了解)期望一个可以创建帖子的作用域也能创建与之匹配的上传内容。
如果一个 API 密钥可以创建帖子,那么它也可以创建上传,就像一个可以创建帖子的用户也可以创建上传一样,这难道不合理吗?
除了帖子上下文之外,还有什么情况上传有用吗?据我所知,如果上传未与帖子关联,它们会被定期自动删除,因此提供一个仅用于上传而不能创建/修改帖子的 API 密钥似乎没有明显用处。
正如 @pfaffman 所提到的,如果 topics:write 和 posts:edit 范围授予上传权限(前提是关联用户有权上传),那么这样做似乎更有意义。
是的,我很确定头像也使用相同的上传路由,但它们不与帖子关联。
也许上传新头像可以使用 users:update API 范围。(目前还不能?)
随着上传可能被使用的途径变得更加多样化和潜在的未来,创建单独的范围并将责任推给用户来选择适当的范围可能是有意义的。当 API 密钥能够/不能上传时,用户可以清楚地了解,并避免在扩展 API 时可能错过上传可以使用的场景。
谢谢!我在 GitHub 上添加了一篇评论。