AWS Amplify - 禁用当前用户帐户

vah*_*det 5 amazon-web-services amazon-cognito 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': 'me@anotherdomain.com',
    'family_name': 'Lastname'
})
Run Code Online (Sandbox Code Playgroud)

但是,我无论如何都看不到禁用(注意,不要删除)帐户。

那么,用户可以注册 Web 应用程序,但无法使用 AWS Amplify停用它?如果没有,是否有其他方法可以通过 Javascript 代码禁用 AWS Cognito 用户池用户?

Jon*_*ong 3

我浏览了 Cognito 用户池 API 的 AWS 文档,找到了一些方法,可以让具有管理员权限的函数禁用(而不是删除)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

使用适用于 JS 的 AWS 开发工具包,代码如下所示:

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
});
Run Code Online (Sandbox Code Playgroud)