admin管理员组文章数量:1204401
Is it possible we can force expire before one hour and get new IdToken using the refresh token OR How to get new IdToken after auto expire time using refreshToken value in this amazon-cognito-identity-js-node module?
I am getting
TypeError: refreshToken.getToken is not a function as error.
I am using this code as follows:
cognitoUser.refreshSession(refreshToken, (err, session) => {
if (err) {//throw err;
console.log('In the err'+err);
}
else{
console.log('session '+session);
}
});
I am passing refreshToken
correct value in the function.
In the file CognitoUser.js on function
refreshSession(refreshToken, callback)
{
const authParameters = {};
authParameters.REFRESH_TOKEN = refreshToken.getToken(); /* Here I am getting error*/
...
....
}
In case if I replace second line of function refreshSession()
with the
authParameters.REFRESH_TOKEN = this.signInUserSession.getRefreshToken().getToken();
then error went off.
I have tried to use the code as follows:
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);
}
});
}
});
}
Can any one please help me out there how should I update IdToken after expire?
Is it possible we can force expire before one hour and get new IdToken using the refresh token OR How to get new IdToken after auto expire time using refreshToken value in this amazon-cognito-identity-js-node module?
I am getting
TypeError: refreshToken.getToken is not a function as error.
I am using this code as follows:
cognitoUser.refreshSession(refreshToken, (err, session) => {
if (err) {//throw err;
console.log('In the err'+err);
}
else{
console.log('session '+session);
}
});
I am passing refreshToken
correct value in the function.
In the file CognitoUser.js on function
refreshSession(refreshToken, callback)
{
const authParameters = {};
authParameters.REFRESH_TOKEN = refreshToken.getToken(); /* Here I am getting error*/
...
....
}
In case if I replace second line of function refreshSession()
with the
authParameters.REFRESH_TOKEN = this.signInUserSession.getRefreshToken().getToken();
then error went off.
I have tried to use the code as follows:
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);
}
});
}
});
}
Can any one please help me out there how should I update IdToken after expire?
Share Improve this question edited Mar 19, 2020 at 11:18 Deep Kakkar asked May 22, 2017 at 8:04 Deep KakkarDeep Kakkar 6,2974 gold badges43 silver badges80 bronze badges4 Answers
Reset to default 15I think refreshSession
expects an instance of the CognitoRefreshToken
class, not just a plain string. The getToken
is a method from that class that's missing in your case. You may want to try this:
var CognitoRefreshToken = require('amazon-cognito-identity-js').CognitoRefreshToken;
...
var token = new CognitoRefreshToken({ RefreshToken: refreshToken })
cognitoUser.refreshSession(token, (err, session) => { ... });
I saw it here: https://gist.github.com/kndt84/5be8e86a15468ed1c8fc3699429003ad
working javascript module
var refreshToken = localStorage.getItem("refreshToken");
var token = new AmazonCognitoIdentity.CognitoRefreshToken({ RefreshToken: refreshToken })
cognitoUser.refreshSession(token, function (err, session) {
console.log(err, session);
var idToken = session.getIdToken().getJwtToken();
})
Check for the answer in this other question, Danny Hoek posted a link to an example with Node.js for the refresh method, it may help you achieve that...
Sample code: how to refresh session of Cognito User Pools with Node.js and Express
It is possible that refreshToken
is not what you're expecting it to be. For example, if you attempt to call getToken()
on a undefined
value, it will produce this error.
Can you please post more of the code?
本文标签: javascriptHow to refresh the IdToken using refreshToken Value in AWS CognitoStack Overflow
版权声明:本文标题:javascript - How to refresh the IdToken using refreshToken Value in AWS Cognito? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1738687246a2106892.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论