jidanni
(Dan Jacobson)
1
Reverse engineer the Discourse API 说:
网站上能做的任何事情,你都可以通过 JSON API 来完成。
唉,https://docs.discourse.org/
一些端点不需要任何身份验证,几乎所有其他端点都需要你进行身份验证。要进行身份验证,你需要从管理面板创建一个 API 密钥。
这太糟糕了,因为 API 有很多合法的用途
普通用户可以使用,而不仅仅是管理员。
例如,用户可能设置一个每月运行的 cron 任务来下载他们的
preferences.json,而不是在“偏好设置”中点击“下载”
(https://meta.discourse.org/t/backup-export-import-preferences/254597)。
我建议需要更改源代码,以便用户很快就能访问他们正在使用的本地 Discourse 的 API,以获取他们的个人数据等。
3 个赞
jidanni
(Dan Jacobson)
3
该响应不正确。如果为用户的信任级别启用了用户 API 密钥生成,任何用户都可以生成用户 API 密钥。如果不在请求负载中设置重定向,它将在浏览器中显示一个包含密钥的 base64 编码响应。
请参阅此主题了解演示如何操作的脚本。
3 个赞
jidanni
(Dan Jacobson)
5
我正在考虑默认情况,即 A 个人安装了 Discourse,而 B 个人只是 A 的 Discourse 上的普通用户,并且 A 没有更改任何管理员设置,B 是否仍然可以通过 API 做很多事情?
用户 API 密钥生成默认对所有用户启用,并且您可以通过 Web 界面执行的任何操作都可以通过 API 执行,因为 Web 界面只是 API 的前端。
我个人在 Chrome 扩展中使用它,该扩展可以汇总我所有拥有帐户的实例中所有未读通知的总数,但有一些例外。
2 个赞
blake
(Blake Erickson)
7
如果用户已经在 Discourse 实例上拥有账户,他们应该能够在其浏览器中的相同 cookie 身份验证用于任何非浏览器 API 请求。
2 个赞