Автоматическое подписание запроса с помощью API Gateway REST API и Amplify - PullRequest
0 голосов
/ 13 марта 2019

Это https://aws -amplify.github.io / docs / js / api # signature-request-with-iam говорит, что AWS Amplify предоставляет возможность подписывать запросы автоматически .. Это то же самое с REST-запросы шлюза API, ограниченные Cognito?

auth.currentSession().then(token => {
        console.log('>>>>', token.getIdToken().getJwtToken());
        authToken = token.getIdToken().getJwtToken();
        const myInit = { // OPTIONAL
          headers: {
            Authorization: authToken
          },
          response: true,
        };
        api.get(apiName, path, myInit).then(response => {
          // Add your code here
          console.log(response);
        }).catch(error => {
          console.log(error.response);
        });
      }
    );

но я получаю заголовок авторизации requires 'Credential' parameter. Authorization header requires 'Signature'

Но в angular это не работает, так как Auth.currentSession() не компилируется

   endpoints: [
     {
       name: 'test',
       endpoint: 'https://xyz.execute-api.us-west-2.amazonaws.com/test',
       custom_header: async () => {
          // Alternatively, with Cognito User Pools use this:
         return {Authorization: (await Auth.currentSession()).idToken.jwtToken};
       }
     }
   ]
 }

1 Ответ

0 голосов
/ 13 марта 2019

Resolved имел опечатку с URL-адресом запроса, это должно было быть /items/:test, где test было именем раздела в динамо, также

 headers: {
           Authorization: token
         },

- это , а не :

https://github.com/aws-amplify/amplify-js/issues/2810#issuecomment-470213459

...