Как обменять данные авторизации Google на ключи пула пользователей AWS Cognito - PullRequest
0 голосов
/ 26 июня 2018

После аутентификации в Google, следуя руководству здесь , я получаю следующий набор:

 email          // 'eddyverbruggen@gmail.com'
 userId         // user id
 displayName    // 'Eddy Verbruggen'
 familyName     // 'Verbruggen'
 givenName      // 'Eddy'
 imageUrl       // 'http://link-to-my-profilepic.google.com'
 idToken        // idToken that can be exchanged to verify user identity.
 serverAuthCode // Auth code that can be exchanged for an access token and refresh token for offline access
 accessToken    // OAuth2 access token

Как их использовать для возврата к сеансу пула пользователей Cognito, состоящему из:

 "access_token":"eyJz9sdfsdfsdfsd" 
 "refresh_token":"dn43ud8uj32nk2je"
 "id_token":"dmcxd329ujdmkemkd349r"

Оказывается, это пока не поддерживается . Вот запрос функции .

1 Ответ

0 голосов
/ 26 июня 2018

Насколько я понимаю, вам нужно включить федеративную идентификацию в AWS Cognito Console . Этот документ содержит этот фрагмент, который показывает, что вам нужно использовать idToken в ответе от Google:

function signinCallback(authResult) {
  if (authResult['status']['signed_in']) {

    // Add the Google access token to the Cognito credentials login map.
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
      IdentityPoolId: 'IDENTITY_POOL_ID',
      Logins: {
        'accounts.google.com': authResult['id_token']
      }
    });

    // Obtain AWS credentials
    AWS.config.credentials.get(function(){
      // Access AWS resources here.
    });
  }
}
...