C# 4.0 如何获取REFRESH\u TOKEN\u AUTH请求以返回RefreshToken

C# 4.0 如何获取REFRESH\u TOKEN\u AUTH请求以返回RefreshToken,c#-4.0,amazon-cognito,C# 4.0,Amazon Cognito,我使用AmazonCognito登录用户并保存一个RefreshToken,这样他们就不必在初始设置后键入密码。我需要能够使用RefreshToken登录,并获得一个新的RefreshToken,以便下次保存。但是,当我调用InitiateAuthAsync时,它不会返回RefreshToken C: 答复: { "AuthenticationResult": { "AccessToken": "<accessToken>", "Expires

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

C:

答复:

{
    "AuthenticationResult": {
        "AccessToken": "<accessToken>",
        "ExpiresIn": 3600,
        "IdToken": "<idToken>",
        "TokenType": "Bearer"
    },
    "ChallengeParameters": {}
}
这是来自登录的响应,带有工作响应肯:

{
    "AuthenticationResult": {
        "AccessToken": "<accessToken>",
        "ExpiresIn": 3600,
        "IdToken": "<idToken>",
        "RefreshToken": "<refreshToken>",
        "TokenType": "Bearer"
    },
    "ChallengeParameters": {}
}

刷新令牌是一个长期有效的令牌,返回它没有意义,因为它仍然有效很多天。如果默认的30天到期时间不够长,您可以将其增加到3650天。

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

当然,返回一个新的token是有意义的!由于2月份的原因,30天后,实际上是28天后,我的用户不得不重新输入他们的密码,一个月后他们就不记得了。不过,我不太愿意回答这个问题,因为答案是它坏了。
{
    "AuthenticationResult": {
        "AccessToken": "<accessToken>",
        "ExpiresIn": 3600,
        "IdToken": "<idToken>",
        "RefreshToken": "<refreshToken>",
        "TokenType": "Bearer"
    },
    "ChallengeParameters": {}
}