Я пытался заставить логин работать, используя пароль владельца ресурса oAuth, однако я не могу заставить его работать.
Я не создал бэкэнд, я отправляю запрос, я использую Invision Power Board . Я не могу найти примеры запросов с использованием простого fetch
, поэтому я просто не уверен, что делаю что-то не так.
Вот мой запрос, отправляемый на стороне клиента:
const form = {
'grant_type': 'password',
'username': 'username',
'password': 'pass',
'scope': 'profile',
'client_id': 'client_id',
}
var formBody = [];
for (var property in form) {
var encodedKey = encodeURIComponent(property);
var encodedValue = encodeURIComponent(form[property]);
formBody.push(encodedKey + "=" + encodedValue);
}
formBody = formBody.join("&");
await fetch(`https://example.com/oauth/token`, {
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
},
body: formBody
})
Все, что я получаю, - это ошибка:
{
"error": "invalid_request",
"error_description": "request must be a POST request"
}
Я неправильно отформатировал это или я что-то упустил? Я следил за документами oAuth, но, возможно, я неправильно понял, как это сделать.
Это проблема с моим сервером?
Правка - Пример запроса с reqbin:
POST /oauth/token HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Content-Length: 85
grant_type=password&username=username&password=pass&scope=profile&client_id=client_id
Как ни странно, ответ здесь:
{
"error": "invalid_client"
}