ошибка 405 метод не допускается ошибка при отправке ax ios после запроса для получения идентификатора, доступа и обновления токена sh с использованием потока кода авторизации - PullRequest
0 голосов
/ 11 февраля 2020

Я пытаюсь использовать AWS пользовательский интерфейс cognito и входить в систему для пользователей сайта c, размещенного на AWS S3. Я успешно могу перенаправить пользователей на свой веб-сайт c, и, поскольку я выбрал поток кода авторизации, я вижу перенаправленный URL

. Я сохраняю параметр кода в переменная myauthorizationcode .

Я пытался использовать почтальон для получения идентификатора, доступа и обновления sh токенов, следуя документации aws

В документации говорится, что почтовый запрос должен быть выполнен следующим образом

POST https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/token&
Content-Type='application/x-www-form-urlencoded'&
Authorization=Basic aSdxd892iujendek328uedj

grant_type=authorization_code&
client_id=djc98u3jiedmi283eu928&
code=AUTHORIZATION_CODE&
redirect_uri=com.myclientapp://myclient/redirect

Я не включил часть авторизации Basi c, как в примере выше в почтальоне, но я все еще был в состоянии успешно получить идентификатор токен, токен доступа и refre sh токен в этом формате -

{ 
 "access_token":"eyJz9sdfsdfsdfsd", 
 "refresh_token":"dn43ud8uj32nk2je", 
 "id_token":"dmcxd329ujdmkemkd349r",
 "token_type":"Bearer", 
 "expires_in":3600
}

Моя проблема заключается в том, что я пытаюсь выполнить проверку на стороне клиента, выполнив запрос POST с помощью ax ios. Ниже приведен мой фрагмент кода.


 var authTokens = () =>  {
      var promise = new Promise((resolve, reject) => {

          axios.post("https://auth-alexuite.auth.us-east-1.amazoncognito.com/oauth2/token",{
                headers: {
                  'Content-Type': 'application/x-www-form-urlencoded',
                  'Authorization': 'Basic (**base64codeof(client_id:client_secret)**)'
                   }
                }
                /*,{
                'grant_type': 'authorization_code',
                'client_id': 'k94***v4f************',
                'client_secret': '*****idtufgvp3ka',
                'code': myauthorizationcode,
                'redirect_uri': 'https://myredirecturi.s3.amazonaws.com/post.html'
                }*/).then(function(response){
                      alert('posting request sent to exchange for tokens.');
                      console.log('tokens: '+JSON.stringify(response));
                      return resolve(response);
                }).catch(function(error){
                      console.log('error message', error);
                      return reject(error);
                });

        });

   });

}

async function loadRecord(){

  var tokens = await authTokens();
  console.log('tokens', tokens);

}

loadRecord() ; //on click of a button this function will be called.
****************************************

Я получаю сообщение об ошибке:

error message Error: Request failed with status code 405 

и в журнале сообщений токенов отображается

'tokens undefined'

Хотя он работает нормально с почтальоном, я изо всех сил стараюсь заставить его работать на моем сайте s3 stati c. Я попытался сделать запрос ax ios с авторизацией Basi c и без нее, и в обоих случаях я получаю одну и ту же ошибку.

...