Dee*_*kar 2 javascript node.js amazon-cognito aws-sdk
我们是否可以在一小时前强制过期并使用刷新令牌获取新的 IdToken 或如何在自动过期时间后使用此amazon-cognito-identity-js-node模块中的refreshToken 值获取新的 IdToken ?
我正进入(状态
类型错误:refreshToken.getToken 不是错误函数。
我使用此代码如下:
cognitoUser.refreshSession(refreshToken, (err, session) => {
if (err) {//throw err;
console.log('In the err'+err);
}
else{
console.log('session '+session);
}
});
Run Code Online (Sandbox Code Playgroud)
我refreshToken在函数中传递正确的值。在 CognitoUser.js 文件中的函数
refreshSession(refreshToken, callback)
{
const authParameters = {};
authParameters.REFRESH_TOKEN = refreshToken.getToken(); /* Here I am getting error*/
...
....
}
Run Code Online (Sandbox Code Playgroud)
在情况下,如果我的替换功能第二线refreshSession()与
authParameters.REFRESH_TOKEN = this.signInUserSession.getRefreshToken().getToken();
Run Code Online (Sandbox Code Playgroud)
然后错误消失了。
我尝试使用以下代码:
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);
}
});
}
});
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以帮助我在过期后如何更新IdToken?
Geo*_*kov 10
我认为refreshSession需要一个CognitoRefreshToken类的实例,而不仅仅是一个普通的字符串。该getToken是从类缺少你的情况的方法。你可能想试试这个:
var CognitoRefreshToken = require('amazon-cognito-identity-js').CognitoRefreshToken;
...
var token = new CognitoRefreshToken({ RefreshToken: refreshToken })
cognitoUser.refreshSession(token, (err, session) => { ... });
Run Code Online (Sandbox Code Playgroud)
我在这里看到了:https : //gist.github.com/kndt84/5be8e86a15468ed1c8fc3699429003ad
| 归档时间: |
|
| 查看次数: |
11242 次 |
| 最近记录: |