Lambda Cognito - Смена пароля - Неверный токен доступа - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь изменить пароль пользователя с помощью функции Lambda, которой я предоставил полный доступ через Congnito.Метод и параметры следующие:

Method: cognitoidentityserviceprovider.changePassword 
Paramter: 
{
                        AccessToken: data.AccessToken, /* required */
                        PreviousPassword:  data.PreviousPassword, /* required */
                        ProposedPassword:  data.ProposedPassword /* required */
                    }

Пользователь является аутентифицированным пользователем с действительным токеном доступа в моем приложении.Я получаю токен доступа из данных аутентификации пользователя и отправляю его с остальными параметрами в lambda.

По какой-то причине (которую я не знаю: D) методы changePassword возвращаются с ошибкой, как показано ниже

1 Ответ

0 голосов
/ 25 октября 2018

Как видно здесь, я бы использовал admin Auth Api.Отправьте вызов с REFRESH_TOKEN_AUTH в качестве Auth Type для получения новых токенов.затем захватите токен доступа и попробуйте снова.

https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html

    var params = {
  AuthFlow: USER_SRP_AUTH | REFRESH_TOKEN_AUTH | REFRESH_TOKEN | CUSTOM_AUTH | ADMIN_NO_SRP_AUTH | USER_PASSWORD_AUTH, /* required */
  ClientId: 'STRING_VALUE', /* required */
  UserPoolId: 'STRING_VALUE', /* required */
  AnalyticsMetadata: {
    AnalyticsEndpointId: 'STRING_VALUE'
  },
  AuthParameters: {
    '<StringType>': 'STRING_VALUE',
    /* '<StringType>': ... */
  },
  ClientMetadata: {
    '<StringType>': 'STRING_VALUE',
    /* '<StringType>': ... */
  },
  ContextData: {
    HttpHeaders: [ /* required */
      {
        headerName: 'STRING_VALUE',
        headerValue: 'STRING_VALUE'
      },
      /* more items */
    ],
    IpAddress: 'STRING_VALUE', /* required */
    ServerName: 'STRING_VALUE', /* required */
    ServerPath: 'STRING_VALUE', /* required */
    EncodedData: 'STRING_VALUE'
  }
};
cognitoidentityserviceprovider.adminInitiateAuth(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
...