你好,
我正在为我们的 Discourse 实例开发一个非常特定的插件,有几个问题想请教。
该插件在某个阶段需要将我们 Discourse 帖子的图片集合发送到 Imgur。收集这些图片的部分已经完成。
现在我正尝试使用 Imgur 的 OAuth2 流程来认证其 API。我已经为插件创建了一个管理界面,允许用户点击按钮授权插件访问其 Imgur 账户。用户登录后,会调用一个回调 URL(已配置为我 Discourse 实例中的特定路由,该路由由插件创建),并携带访问令牌(参见示例)。
http://localhost:3000/admin/plugins/plugin_name/callback#access_token=<token>&...
我的问题是:如何获取这个令牌?我完全不知道从哪里入手。
我的理解是,由于令牌是以哈希参数形式返回的,必须在 JavaScript 端处理。我尝试为回调 URL 设置控制器和路由,但无法弄清楚如何从中读取 URL(尤其是哈希部分)。(我在 Ember.js 文档或 Stack Overflow 上都没找到有用的信息。)我也尝试设置不同的事件监听器,但它们似乎从未触发。
我的第二个问题是:应该在哪里存储访问令牌和刷新令牌?我可以将其保存为插件的系统设置吗?我听说过 PluginStore,但它仅在 Ruby 中可访问(这意味着需要创建一个端点,让客户端将这些令牌发送到服务器)。另外,从安全角度来看这样做是否可靠?
谢谢!
编辑:我的路由文件名有个拼写错误,少了一个字母 s,这就是为什么没有任何东西被触发的原因。