【问题标题】:AWS cognito - how to refresh token in angular?AWS cognito - 如何以角度刷新令牌?
【发布时间】:2025-12-17 04:45:01
【问题描述】:

我试过这段代码,

    const cognitoisp = new AWS.CognitoIdentityServiceProvider();

    const params = {
      AuthFlow: 'REFRESH_TOKEN',
      ClientId: '',
      UserPoolId: '',
      AuthParameters: {
        'REFRESH_TOKEN': ''
      }
    };

    cognitoisp.adminInitiateAuth(params, function (err, data) {
      if (err) {
        console.log('RefreshTokenError: ', err.stack);
      } else {
        console.log('RefreshTokenResponse: ', data);
      }
    });

但它不起作用。或者有没有其他方法可以刷新token?

【问题讨论】:

    标签: angular amazon-web-services token amazon-cognito


    【解决方案1】:

    adminInitiateAuth 功能是为管理 Cognito 的人保留的,您需要使用 initateAuth

    const params = {
      AuthFlow: 'REFRESH_TOKEN_AUTH',
      ClientId: 'YOUR_CLIENT_ID!',
      AuthParameters: {
        'REFRESH_TOKEN': 'THE_REFRESH_TOKEN!'
      }
    };
    
    cognitoisp.initiateAuth(params, function (err, data) {
      if (err) {
        console.log('RefreshTokenError: ', err.stack);
      } else {
        console.log('RefreshTokenResponse: ', data);
      }
    });
    

    【讨论】:

    • 谢谢托马斯迈克尔华莱士。我尝试了这个解决方案,但出现了这个错误 - 'CredentialsError: Missing credentials in config'。
    • 您是否向cognitoisp 提供凭据?就像您在登录期间获取初始令牌时所做的那样? (github.com/aws-amplify/amplify-js/tree/master/packages/…)
    • Auth.signIn(form.username, form.password).then(user => { }).catch(err => { });
    • 您能确认一下Auth 的来源-您使用的是aws-amplify吗?