- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在我的 Web 应用程序中实现 Amazon Cognito 用户池身份验证,我遇到了这个问题 - 如何将 newPasswordRequired 回调中的用户重定向到“/new-password”并等待输入?
所以换句话说,我的预期流程是用户使用临时密码登录(这里我触发 cognitoUser.authenitcateUser),之后我将用户重定向到“/new-password”路由,用户看到新密码形式(newPasswordRequired 回调)在这里触发)。
现在的问题是 SDK 希望我在 newPassword 回调中传递密码,但我还不知道它们(因为用户将以新密码形式输入)。
代码:
async login(values) {
const details = {
Username: values.username,
Password: values.password,
};
const authDetails = new AuthenticationDetails(details);
const userData = {
Username: details.Username,
Pool: poolData,
};
const cognitoUser = await new CognitoUser(userData);
await cognitoUser.authenticateUser(authDetails, {
onSuccess: (result) => {
console.log(userData);
axios.defaults.headers.common.Authorization = result.getIdToken().getJwtToken();
browserHistory.push('/entities');
},
onFailure: (error) => {
console.log(userData);
throw new Error(error);
},
newPasswordRequired: () => {
browserHistory.push('/new-password');
console.log(cognitoUser);
console.log(cognitoUser.getAuthenticationFlowType(), 'YOU NEED TO CHANGE PASSWORD');
const userData = {
Username: cognitoUser.username,
Pool: poolData,
};
cognitoUser.completeNewPasswordChallenge(
values.newPassword,
{},
{
onSuccess: (user) => {
console.log('success', user);
},
onFailure: (error) => {
console.log(error);
},
},
);
},
});
我尝试的另一件事是创建单独的方法,该方法负责调用 cognitoUser.completeNewPasswordChallenge,但随后用户池认为我未通过身份验证。
我的 React 组件如下所示:
<form onSubmit={this.props.handleSubmit(AWSApi.login.bind(this))}></form>
最佳答案
您需要 cognitoUser.Session
才能在重定向后调用 cognitoUser.completeNewPasswordChallenge
。您可以在本地存储中保留 cognitoUser.Session
或在重定向前设置为获取参数 (yoururl?session=cognitoUser.Session
)。然后在新页面中,您可以创建新的 cognitoUser
并设置您的旧响应 session 。
例如:
var userPool = new AmazonCognitoIdentity.CognitoUserPool(POOL_DATA);
var userData = {
Username: username,
Pool: userPool
};
var cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.Session = <your saved session>
cognitoUser.completeNewPasswordChallenge(....
关于javascript - Amazon Cognito newPasswordRequired 等待页面加载,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46215374/
我正在我的 Web 应用程序中实现 Amazon Cognito 用户池身份验证,我遇到了这个问题 - 如何将 newPasswordRequired 回调中的用户重定向到“/new-password
我正在为 React 中构建的 Web 应用程序开发登录流程,并使用 AWS Cognito 进行用户管理。我正在处理登录流程,并且有一个用例,其中通过 AWS 控制台创建用户并向用户提供临时密码。当
我是一名优秀的程序员,十分优秀!