如何获取 REFRESH_TOKEN_AUTH 请求返回 RefreshToken

Rac*_*tin 7 c#-4.0 amazon-cognito

我使用 Amazon Cognito 登录用户并保存密码,RefreshToken这样他们就不必在初始设置后输入密码。我需要能够登录并RefreshToken获取新的RefreshToken以保存下次。但是,当我调用 时InitiateAuthAsync,它不会返回RefreshToken.

C#:

var refreshReq = new InitiateAuthRequest();
refreshReq.ClientId = _clientId;

refreshReq.AuthFlow = AuthFlowType.REFRESH_TOKEN_AUTH;
refreshReq.AuthParameters.Add("SECRET_HASH", 
    SecretHash(_clientId, _clientSecret, username));
refreshReq.AuthParameters.Add("REFRESH_TOKEN", refreshToken);


var clientResp = cognitoProvider.InitiateAuthAsync(refreshReq).Result;
Run Code Online (Sandbox Code Playgroud)

回复:

{
    "AuthenticationResult": {
        "AccessToken": "<accessToken>",
        "ExpiresIn": 3600,
        "IdToken": "<idToken>",
        "TokenType": "Bearer"
    },
    "ChallengeParameters": {}
}
Run Code Online (Sandbox Code Playgroud)

这是使用有效的 ResponseToken 登录的响应:

{
    "AuthenticationResult": {
        "AccessToken": "<accessToken>",
        "ExpiresIn": 3600,
        "IdToken": "<idToken>",
        "RefreshToken": "<refreshToken>",
        "TokenType": "Bearer"
    },
    "ChallengeParameters": {}
}
Run Code Online (Sandbox Code Playgroud)

Rac*_*tin 8

显然这是 AWS Cognito API 中的一个错误。文档应该InitiateAuth返回更新的 RefreshToken,但事实并非如此。