Я пытаюсь проверить JWT access_token на соответствие API OneLogin, как описано здесь . Мой код выглядит следующим образом:
const client_id = MY_CLIENT_ID
const client_secret = MY_CLIENT_SECRET
const token = MY_ONE_LOGIN_JWT_ACCESS_TOKEN
axios
.post(
"https://my-endpoint-dev.onelogin.com/oidc/2/token/introspection",
{ token, client_id, client_secret, token_type_hint: "access_token" },
{
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
}
)
.then((response) => {
console.log("response");
console.log(response);
})
.catch((err) => {
console.log("err");
console.log(err);
});
Конечная точка работает нормально, на самом деле, когда срок действия JWT истек, это дает мне сообщение об ошибке, как таковое, и мне нужно обновить токен, который я передаю . Однако всякий раз, когда я делаю стандартный запрос, как показано выше, с действительными учетными данными и токенами, я получаю следующий ответ об ошибке:
{error: "invalid_request", error_description: "no client authentication mechanism provided"}
На предоставленной странице нет документации, которая описывает, что не так с запросом, когда эта ошибка получен. Из документации, насколько я могу судить, мой запрос отформатирован правильно.
Я проверил, что конечная точка токена в OneLogin установлена на POST, поэтому я предполагаю, что client_secret
должен быть в теле задокументирован как правильный (хотя я пробовал его как Basi c просто для проверки):
Я попытался найти решение, но единственное, что я обнаружил, говорит о том, что заголовок Content-Type
может не предоставляться. Я обязательно добавил это в список заголовков и проверил, что он отображается в запросе, но ошибка все еще сохраняется.
Есть какие-нибудь мысли о том, чего мне здесь может не хватать?
EDIT:
Попытка выполнить запрос cURL и получила ответ 200 с той же информацией. Заставляя меня поверить, что это что-то с вызовом топора ios, которое у меня неверно.