Как использовать функцию 3hale `authrep` с точки зрения сервера и клиента?
Я пытаюсь настроить прототип API с помощью nodejs, который использует управление API 3Scale.
Я смог найти их код интеграции плагинов, который выглядит следующим образом:
var ThreeScale = require('3scale').Client;
// keep your provider key secret
var client = new ThreeScale("X");
// you will usually obtain app_id and app_key from request params
client.authrep({ app_id: "Y",
app_key: "Z" }, function(response){
if(response.is_success()) {
// continue
} else {
throw new Error("not authorized " + response.error_message);
}
});
Что имеет некоторый смысл для меня как части серверного модуля. Но я не уверен, где учетные данные клиента находятся в этом уравнении....
Я вижу, как клиент указывает на ваше приложение, и вот пароль для приложения... но как насчет имени пользователя / пароля для реального клиента!? где это проверяется?
Я чувствую, что не понимаю их архитектуру (возможно, потому что это мой первый реальный проект узла и, безусловно, мой первый раз, когда я использую 3Scale)...
Далее, как выглядит запрос клиента?
1 ответ
В 3scale system app_id и app_key (в этом методе аутентификации) представляют собой учетные данные пользователя (т.е. разработчика). Это связано с тем, что каждый пользователь может иметь более одного приложения, и одно приложение принадлежит только одному пользователю, поэтому вам не нужны учетные данные пользователя. Учетные данные проверяются на стороне системы 3scale и, если они авторизованы, сообщают об использовании и перенаправляют вызов в ваш API.
provider_key идентифицирует вашу учетную запись (владельца API), и вы должны держать ее в секрете (если кто-то ее получит, он может выдать себя за вас).
Вы уже проверили сайт поддержки 3scale? Существует много полезной информации об архитектуре системы, некоторые учебные пособия по интеграции и т. Д. Вы можете проверить их здесь: http://support.3scale.net/
Кстати. плагин node.js является плагином сообщества. Вы также можете попробовать интеграцию через обратный прокси-сервер nginx.