AX IOS запрос с X-Auth-Token - PullRequest
       3

AX IOS запрос с X-Auth-Token

1 голос
/ 13 марта 2020

Как я могу установить токен, созданный из 1-го запроса и использовать в следующем? Попытался установить оба значения "X-Auth-Token": clientToken или Авторизация: Bearer ${clientToken}, но это не работает.

Получение сообщения об ошибке:

data: {
      description: "Missing request header 'X-Auth-Token' for method parameter of type String"
}

Это запрос

axios
.post(tokenUrl, credentials, {
    headers: { "content-type": "application/json" }
})
.then(function(response) {
    const clientToken = response.data;
    console.log(clientToken);
    console.log("fetched token via api");

    //Get Receipt data
    const receiptUrl =
        "http://rest/financial/receipt";
    const dateRange = {
        params: {
            from: "2020-03-12",
            to: "2020-03-13"
        }
    };

    const header = {
        headers: {
            "X-Auth-Token": clientToken,
            "content-type": "application/json"
        }
    };
    axios
        .get(receiptUrl, dateRange, header)
        .then(function(response) {
            console.log(response.data);
            console.log("fetched receipts via api");
        })
        .catch(function(error) {
            console.log(error);
        });
})
.catch(function(error) {
    console.log(error);
});

Ответы [ 3 ]

1 голос
/ 13 марта 2020

Вы можете попробовать что-то вроде этого:

// Other code...

let data = {
    params: {
        from: "2020-03-12",
        to: "2020-03-13"
    },
    headers: {
        "X-Auth-Token": clientToken,
        "content-type": "application/json"
    }
};

axios.get(receiptUrl, data).then(function(response) {
    // ...
}).catch(function(error) {
    //...
});

Проверьте подпись метода get , которая:

axios.get(URL, { params:{}, headers: { key: 'value' } })
0 голосов
/ 13 марта 2020

Попробуйте установить токен в заголовках по умолчанию, если токен существует

if (clientToken) {
    axios.defaults.headers.common["x-auth-token"] = clientToken;
  } else {
    delete axios.defaults.headers.common["x-auth-token"];
  }

  const header = {
     headers: {
       "content-type": "application/json"
        }
  };
0 голосов
/ 13 марта 2020

Вы можете установить clientToken глобально:

const JWT_TOKEN = 'jwt_access_token';

const api = axios.create({
  baseURL: apiURL,
  timeout: 5 * 60 * 1000,
});

if (localStorage.getItem(JWT_TOKEN)) {
  const token = localStorage.getItem(JWT_TOKEN);
  api.defaults.headers.common.Authorization = `Bearer ${clientToken}`;
}
...