使用Amazon Web Services Cognito Userpool时如何记住&autorefresh登录令牌?

Duk*_*gal 5 amazon-web-services amazon-cognito

我已经构建了一个使用AWS Cognito和Userpool功能的网站.

如果我离开页面,忘记登录,一小时后令牌过期.

当用户关闭浏览器并返回时,我希望记住登录信息.

我还希望auth令牌能够自动刷新,而不是仅在一小时后发出错误.

我怎样才能做到这一点?

Ion*_*ian 6

用户池令牌将保存到本地存储.在用户池对象上调用getCurrentUser时,您可以检索最后一个经过身份验证的用户对象.之后,调用getSession应该使用刷新令牌来检索新的访问令牌(如果它们已过期),如下例所示.在getSession的回调中,您应该有一个有效的会话.

var poolData = {
    UserPoolId : '...', // Your user pool id here
    ClientId : '...' // Your client id here
};
var userPool = new AWSCognito.CognitoIdentityServiceProvider.CognitoUserPool(poolData);
var cognitoUser = userPool.getCurrentUser();

if (cognitoUser != null) {
    cognitoUser.getSession(function(err, session) {
        if (err) {
           alert(err);
            return;
        }
        console.log('session validity: ' + session.isValid());
        //You should have a valid session here
    });
}
Run Code Online (Sandbox Code Playgroud)

  • 如果您使用Cognito Identity获取AWS凭据以访问其他AWS服务,并且您要为其设置登录映射,则必须调用refresh或实际检索新凭据.如果您实际上没有使用Cognito Identity,那么请不要. (2认同)