Проблема с извлечением из внешнего интерфейса. Reack JS с Spring API, использование ouath, проблема с "error_description": "Отсутствует тип предоставления" " - PullRequest
1 голос
/ 14 января 2020

У меня проблема с fetch () из REACTJS на внешнем интерфейсе, но когда я использую почтальон, все хорошо. Когда я пользуюсь почтальоном, у меня есть такой ответ ->

 "access_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBpIl0sInVzZXJfbmFtZSI6ImFkbWluQGFkbWluLnBsIiwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImV4cCI6MTU3ODk0MjE4NSwiYXV0aG9yaXRpZXMiOlsiQURNSU4iXSwianRpIjoiNWE2MzNkMDktZjJkYi00NmU4LTllNzMtOTlmNWYzM2UwN2IxIiwiY2xpZW50X2lkIjoiZ2xlZS1vLW1ldGVyIn0.S8z75ar9pmAZkxYUwG6Cz5LX6l7B8n5-lLPdlS-IB54",
"token_type": "bearer",
"refresh_token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOlsiYXBpIl0sInVzZXJfbmFtZSI6ImFkbWluQGFkbWluLnBsIiwic2NvcGUiOlsicmVhZCIsIndyaXRlIl0sImF0aSI6IjVhNjMzZDA5LWYyZGItNDZlOC05ZTczLTk5ZjVmMzNlMDdiMSIsImV4cCI6MTU3ODk0MzA4NSwiYXV0aG9yaXRpZXMiOlsiQURNSU4iXSwianRpIjoiOWRmZmU5ZDEtYjVjMC00YzMwLWIzZDQtODlhYjg0OTdhOTYwIiwiY2xpZW50X2lkIjoiZ2xlZS1vLW1ldGVyIn0.Q0gygNqGEjForZJd5o4NMvE40OS_9869oM5qeOAIvpQ",
"expires_in": 99,
"scope": "read write",
"jti": "5a633d09-f2db-46e8-9e73-99f5f33e07b1"

Это мой запрос почтальона:

    var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
myHeaders.append("Authorization", "Basic Z2xlZS1vLW1ldGVyOnNlY3JldA==");

var formdata = new FormData();
formdata.append("username", "admin@admin.pl");
formdata.append("password", "admin");
formdata.append("grant_type", "password");

var requestOptions = {
  method: 'POST',
  headers: myHeaders,
  body: formdata,
  redirect: 'follow'
};

fetch("localhost:8080/oauth/token", requestOptions)
  .then(response => response.text())
  .then(result => console.log(result))
  .catch(error => console.log('error', error));

Я использую тот же код в моем ReactJS:

и у меня есть ответ:

 signIn() {
    var myHeaders = new Headers();
    myHeaders.append("Content-Type", "application/x-www-form-urlencoded");
    myHeaders.append("Authorization", "Basic Z2xlZS1vLW1ldGVyOnNlY3JldA==");

    var formdata = new FormData();
    formdata.append("username", "admin@admin.pl");
    formdata.append("password", "admin");
    formdata.append("grant_type", "password");

    var requestOptions = {
        method: 'POST',
        headers: myHeaders,
        body: formdata,
        redirect: 'follow'
    };

    fetch("http://localhost:8080/oauth/token", requestOptions)
        .then(response => response.text())
        .then(result => console.log(result))
        .catch(error => console.log('error', error));
}

{"error":"invalid_request","error_description":"Missing grant type"}

фронт находится на порте 3030, пружина на 8080

Знает ли sb, что произошло?

...