是否有可能我們可以在一小時之前強制過期並使用刷新令牌獲得新的IdToken 或 如何在amazon-cognito-identity-js-node模塊中使用refreshToken值自動過期後獲得新的IdToken?使用AWS Cognito中的refreshToken值刷新IdToken?
我越來越
TypeError: refreshToken.getToken is not a function as error.
我使用這個代碼如下:
cognitoUser.refreshSession(refreshToken, (err, session) => {
if (err) {//throw err;
console.log('In the err'+err);
}
else{
console.log('session '+session);
}
});
我在函數傳遞refreshToken
正確的值。 在文件CognitoUser.js上功能
refreshSession(refreshToken, callback)
{
const authParameters = {};
authParameters.REFRESH_TOKEN = refreshToken.getToken(); /* Here I am getting error*/
...
....
}
在情況下,如果我取代的功能refreshSession()
秒符合
authParameters.REFRESH_TOKEN = this.signInUserSession.getRefreshToken().getToken();
然後錯誤去了。
我曾嘗試使用的代碼如下:
var poolData = {
UserPoolId: 'xx-xxx-x_xxxxx',
ClientId: 'xxxxx',
AuthFlow: 'xxxxx'
};
userPool = new AWS.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
if(minuteDiff >= 60) { // Defult Id Token Expired
// Get New IdToken using RefreshToken
var userData = {
Username : cognitousername,
Pool : userPool
};
var cognitoUser = new AWS.CognitoIdentityServiceProvider.CognitoUser(userData);
var refreshToken = localStorage.getItem('refreshToken');
cognitoUser.getSession(function(err, session) {
if (err) {
res.send(err);
}
else{
/* Session Refresh */
cognitoUser.refreshSession(refreshToken, (err, session) => {
if (err) {//throw err;
console.log('In the err'+err);
}
else{
var regsmar_apiKey = session.idToken.jwtToken; // will this provide new IdToken?
localStorage.setItem('api_key',regsmar_apiKey);
}
});
}
});
}
任何一個可以請幫我在那裏,我應該如何更新IdToken過期後?
所以,能否請您詳細說明如何更新IdToken後自動到期即1-時間?我應該再次以編程方式重新登錄嗎?有沒有可以幫助我的內容或文檔? – Deep
通過RefreshTokenApi或InitiateAuth的REFRESH_TOKENS(_AUTH)流刷新令牌是實現此目的的方法。根據github的例子(https://github.com/aws/amazon-cognito-identity-js),嘗試getSession來做到這一點。 –
剛剛更新我的問題與代碼,你能檢查嗎? – Deep