Как использовать функцию 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.

Другие вопросы по тегам