401 Ошибка разрешения с Balanced Payments

Я использую Parse.Cloud.httpRequest, и мне нужно отправить базовую аутентификацию только с именем пользователя для сбалансированных платежей. Куда это идет и как это будет выглядеть? Я попытался установить его в заголовках, но это не работает.

 Parse.Cloud.httpRequest({
          method:'POST',
          url: customerUrl,
          headers:{
            "Content-Type"      : "application/x-www-form-urlencoded",
               "Accept"         : "application/vnd.api+json;revision=1.1",
               "Authorization"  : balancedSecret
          },
          body:bodyJsonString,
          success: function(httpResponse) {
            console.log(httpResponse.text);
            response.success(httpResponse.text);
          },
          error: function(httpResponse) {
            console.error('Request failed with response code ' + httpResponse.status);
            response.error(httpResponse.text);

          }
    });

Когда я вызываю функцию, я получаю:

"errors": [
    {
      "status": "Unauthorized",
      "category_code": "authentication-required",
      "description": "Not permitted to perform create on customers. Your request id is OHMca9c440a0a7811e4ba9202a1fe52a36c.",
      "status_code": 401,
      "category_type": "permission",
      "request_id": "OHMca9c440a0a7811e4ba9202a1fe52a36c"
    }
  ]

person GOAT    schedule 13.07.2014    source источник


Ответы (1)


"Authorization"  : balancedSecret

Это будет неправильно. Вы используете секрет в качестве имени пользователя и ничего в качестве пароля. Затем вы объединяете их вместе, кодируете в base64 и передаете это в качестве значения заголовка аутентификации.

У меня нет настройки, чтобы дважды проверить это, но это должно работать как значение:

"Basic " + encodeBase64(balancedSecret + ":")

Давая этот код:

authHeader = "Basic " + btoa(balancedSecret + ":")
Parse.Cloud.httpRequest({
      method:'POST',
      url: customerUrl,
      headers:{
        "Content-Type"      : "application/x-www-form-urlencoded",
           "Accept"         : "application/vnd.api+json;revision=1.1",
           "Authorization"  : authHeader
      },
      body:bodyJsonString,
      success: function(httpResponse) {
        console.log(httpResponse.text);
        response.success(httpResponse.text);
      },
      error: function(httpResponse) {
        console.error('Request failed with response code ' + httpResponse.status);
        response.error(httpResponse.text);

      }
});
person Steve Klabnik    schedule 14.07.2014