我在 React 应用程序中使用 AWS Cognito Javascript SDK。我有一个由管理员在 AWS 控制台中创建的用户,当用户第一次登录时,他们必须重置密码。我完成了 newPasswordRequired 流程,当我使用参数调用 completeNewPasswordChallenge 函数时,将运行 onFailure 回调。当我记录错误时,{code: "UnknownError", message: "Unknown error"}. 但是,当我检查 AWS 控制台时,用户池中的用户从 FORCE_CHANGE_PASSWORD 更改为 CONFIRMED。
我的代码是:
class LoginScreenContainer extends Component {
constructor(props) {
super(props);
this.state = {
isInvalidForm: null,
isFirstLogin: false,
user: null,
userAttr: null
}
this.onFormSubmission = this.onFormSubmission.bind(this);
this.updatePassword = this.updatePassword.bind(this);
}
onFormSubmission = (username, password) => {
const poolData = {
UserPoolId : AWSConfig.cognito.USER_POOL_ID,
ClientId : AWSConfig.cognito.APP_CLIENT_ID
}
const userPool = new CognitoUserPool(poolData);
const userData = …Run Code Online (Sandbox Code Playgroud) 我正在为我在React中内置的Web应用程序创建登录流程,并且正在使用AWS Cognito进行用户管理。我正在处理登录流程,并且有一个用例,其中通过AWS控制台创建了一个用户,并向该用户提供了一个临时密码。当用户首次登录我的应用程序时,AWS Cognito将返回newPasswordRequired质询,并且用户被迫更改密码。
我正在使用amazon-cognito-identity-jsAPI来验证用户身份。可以在此处找到该文档。我已经按照newPasswordRequireddocs的指示进行了回调函数的设置,但是我正在努力寻找在newPasswordRequired函数中使用React从用户那里收集新密码的最佳方法。我最初prompt()在该函数中使用了输入,但是我希望该应用程序进入新页面,用户可以在其中输入新密码,确认新密码并登录到该应用程序。该新页面应该能够调用cognitoUser.completeNewPasswordChallenge()更新新密码所需的。请帮忙!这是我的代码如下:
onFormSubmission = (username, password) => {
const poolData = {
UserPoolId : AWSConfig.cognito.USER_POOL_ID,
ClientId : AWSConfig.cognito.APP_CLIENT_ID
}
const userPool = new CognitoUserPool(poolData);
const userData = {
Username: username,
Pool: userPool
}
const authenticationData = {
Username : username,
Password : password
}
const authenticationDetails = new AuthenticationDetails(authenticationData);
const cognitoUser = new CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function (result) {
console.log('access token + ' + result.getAccessToken().getJwtToken()); …Run Code Online (Sandbox Code Playgroud)