当在使用 AWS Cognito 进行身份验证时,可能会遇到 "redirect_mismatch" 错误信息。这个错误通常是由于在 Cognito 用户池的设置中,未正确配置授权回调 URL 或注销回调 URL 导致的。
解决这个问题的步骤如下:
下面是一个示例代码,展示了如何在使用 AWS SDK for JavaScript 进行身份验证时处理 "redirect_mismatch" 错误:
const AmazonCognitoIdentity = require('amazon-cognito-identity-js');
const poolData = {
UserPoolId: 'YOUR_USER_POOL_ID',
ClientId: 'YOUR_CLIENT_ID'
};
const userPool = new AmazonCognitoIdentity.CognitoUserPool(poolData);
const authenticationData = {
Username: 'YOUR_USERNAME',
Password: 'YOUR_PASSWORD'
};
const authenticationDetails = new AmazonCognitoIdentity.AuthenticationDetails(authenticationData);
const userData = {
Username: 'YOUR_USERNAME',
Pool: userPool
};
const cognitoUser = new AmazonCognitoIdentity.CognitoUser(userData);
cognitoUser.authenticateUser(authenticationDetails, {
onSuccess: function(result) {
// 身份验证成功处理逻辑
console.log('Authentication successful');
console.log('AccessToken: ' + result.getAccessToken().getJwtToken());
console.log('IdToken: ' + result.getIdToken().getJwtToken());
console.log('RefreshToken: ' + result.getRefreshToken().getToken());
},
onFailure: function(err) {
// 身份验证失败处理逻辑
if (err.code === 'RedirectMismatchException') {
console.log('Redirect URL mismatch');
console.log('Please check your callback URLs in Cognito settings');
} else {
console.log('Authentication failed');
console.log(err);
}
}
});
请注意,上述代码中的 "YOUR_USER_POOL_ID"、"YOUR_CLIENT_ID"、"YOUR_USERNAME" 和 "YOUR_PASSWORD" 都需要替换为正确的值。
希望这个示例能帮助你解决 "redirect_mismatch" 错误。如果问题仍然存在,请检查你的回调 URL 配置是否正确,并确保与你的应用程序的实际 URL 匹配。