Привет,
Я разрабатываю очень специфичный плагин для нашего экземпляра Discourse и у меня возникло несколько вопросов.
На каком-то этапе плагину придется отправлять коллекцию изображений тем Discourse в Imgur. Часть, отвечающая за сбор этих изображений, уже готова.
Сейчас я пытаюсь пройти аутентификацию в API Imgur, используя их поток OAuth2. Я уже создал административный интерфейс для плагина, который позволяет нажать кнопку и авторизовать плагин в вашем аккаунте Imgur. После входа пользователя вызывается URL обратного вызова (настроенный как мой экземпляр Discourse и конкретный маршрут, созданный мной в плагине), который получает токен доступа (см. пример).
http://localhost:3000/admin/plugins/plugin_name/callback#access_token=<token>&...
Мой вопрос: как мне получить этот токен обратно? Я понятия не имею, с чего начать.
Мое понимание таково, что поскольку токен возвращается в виде хэш-параметра, это должно быть реализовано на стороне JS. Я попытался настроить контроллер и маршрут для моего URL обратного вызова, но не могу понять, как прочитать URL (и особенно его хэш-часть) оттуда. (Я не нашел ничего полезного в документации Ember.js или на StackOverflow). Я пробовал настроить различные слушатели событий, но они, похоже, никогда не срабатывают.
Мой второй вопрос: где мне следует хранить токен и токен обновления? Могу ли я сохранить его как системную настройку из плагина? Я слышал о PluginStore, но он доступен только в Ruby (что означало бы создание конечной точки для клиента, чтобы отправлять эти токены на сервер). Также, безопасно ли это с точки зрения безопасности?
Спасибо!
Редактирование: В имени файла моего маршрута была опечатка — отсутствовала буква «s», поэтому ничего не срабатывало…