以下是一个使用 AWS SDK for JavaScript(v3)的示例代码,用于解决 AWS Cognito 用户设备确认失败的问题:
const { CognitoIdentityProvider } = require('@aws-sdk/client-cognito-identity-provider');
const confirmDevice = async (cognitoUser, deviceKey) => {
const client = new CognitoIdentityProvider({ region: 'your-region' });
const params = {
AccessToken: cognitoUser.signInUserSession.accessToken.jwtToken,
DeviceKey: deviceKey,
};
try {
const response = await client.confirmDevice(params);
console.log('Device confirmation successful', response);
} catch (error) {
console.error('Device confirmation failed', error);
}
};
const main = async () => {
const cognitoUser = {
signInUserSession: {
accessToken: {
jwtToken: 'your-access-token',
},
},
};
const deviceKey = 'your-device-key';
await confirmDevice(cognitoUser, deviceKey);
};
main();
请确保替换以下值:
your-region:AWS 区域代码(例如,'us-west-2')your-access-token:用户的访问令牌your-device-key:设备的唯一标识符使用此代码示例,您可以调用 confirmDevice 函数来确认设备。如果设备确认成功,将会输出“Device confirmation successful”。如果设备确认失败,将会输出错误信息“Device confirmation failed”以及相关的错误对象。
请注意,您需要安装 AWS SDK for JavaScript(v3)和 @aws-sdk/client-cognito-identity-provider 包,以便在本地运行此示例代码。