amazon-cognito-identity-jsを使用しているときに、ユーザーのトークン、つまりIDトークンをAmazon Cognitoでリフレッシュする際に問題が発生しています。AWS Cognito - 無効な更新トークン
私は成功し、ユーザーはトークンリフレッシュ取得していますが、私はdescribed here
として認証されていない「initiateAuthの要求を行うことにより、ユーザートークンをリフレッシュしようとしている「無効なのリフレッシュトークン」というメッセージと400不正な要求を取得していますPOST https://cognito-idp.us-east-1.amazonaws.com/ 400 (Bad Request)
Uncaught Error: Invalid Refresh Token.
無効な更新トークンを渡していると思われるのはなぜですか?
var reToken;
var poolData = {
UserPoolId : 'us-east-1_XXXXXXXXX',
ClientId : 'XXXXXXXXXXXXXXXXXXXXXXXXXX'
};
var CognitoUserPool = AmazonCognitoIdentity.CognitoUserPool;
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var cognitoUser = userPool.getCurrentUser();
if (cognitoUser != null) {
cognitoUser.getSession(function(err, session) {
if (err) {
alert(err);
return;
}
reToken = session.refreshToken.token;
});
}
var curDate = new Date();
var currentEpoch = Math.round(curDate.getTime()/1000);
var issuedEpoch = store.get('issued');
var refreshParams = {
ClientId: 'XXXXXXXXXXXXXXXXXXXXXXXXXX',
AuthFlow: 'REFRESH_TOKEN_AUTH',
AuthParameters: { 'REFRESH_TOKEN': reToken }
};
// 30 minutes = 1800 seconds
if ((currentEpoch - issuedEpoch) >= 1800) {
userPool.client.makeUnauthenticatedRequest('initiateAuth', refreshParams, (err, authResult) => {
if (err) {
throw err
}
console.log(authResult)
})
}
はさておき、私はrefreshSession()を使用して試したが、それは入手トークンは、()()refreshSessionの関数ではないことを私に伝えます。
cognitoUser.refreshSession(reToken, (err, authResult) => {
if (err) throw err;
console.log(authResult)
});