AWS Amplify - отключить текущую учетную запись пользователя

В модуле аутентификации AWS Amplify есть несколько методов для такие действия, как вход в систему, регистрация, забытый пароль и т. д. Даже можно позволить пользователю обновлять свою информацию, например:

import { Auth } from 'aws-amplify'

// Auth API Sign-in sample
Auth.signIn(username, password)
    .then(user => console.log(user))
    .catch(err => console.log(err))

// Auth API Change info sample
let result = await Auth.updateUserAttributes(user, {
    'email': '[email protected]',
    'family_name': 'Lastname'
})

Однако я не видел возможности отключить (будьте осторожны, не удалять) учетную запись.

Итак, пользователь может зарегистрироваться в веб-приложении, но не может деактивировать его с помощью AWS Amplify? Если нет, есть ли другие способы отключить пользователя пула пользователей AWS Cognito с помощью кода Javascript?


person vahdet    schedule 05.07.2018    source источник


Ответы (1)


Я просмотрел документацию AWS для API пользовательских пулов Cognito и нашел несколько методов, позволяющих функции с правами администратора отключать (не удалять) учетную запись пула пользователей Cognito!

Вот ссылка на документацию на веб-сайте AWS: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminDisableUser.html

Существует также метод повторного включения пользователя: https://docs.aws.amazon.com/cognito-user-identity-pools/latest/APIReference/API_AdminEnableUser.html

Реализацию javascript для этого можно найти здесь: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/CognitoIdentityServiceProvider.html#adminDisableUser-property

При использовании AWS SDK для JS код будет примерно таким:

var cognitoidentityserviceprovider = new AWS.CognitoIdentityServiceProvider({apiVersion: '2016-04-18'});

var params = {
  UserPoolId: 'STRING_VALUE', /* required */
  Username: 'STRING_VALUE' /* required */
};
cognitoidentityserviceprovider.adminDisableUser(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});
person Jonathan Wong    schedule 01.08.2018
comment
Хороший момент, а точнее обходной путь. Но все же без прав администратора возможность отключить только свою учетную запись здесь не подходит. - person vahdet; 05.08.2018