Как получить запрос REFRESH_TOKEN_AUTH на возврат RefreshToken - PullRequest
1 голос
/ 08 марта 2019

Я использую 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;

Ответ:

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

А это ответ от логина с рабочим ResponseToken:

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

Ответы [ 2 ]

1 голос
/ 14 марта 2019

Видимо, это ошибка в API AWS Cognito. документы говорят, что InitiateAuth должен возвращать обновленный RefreshToken, но это не так.

0 голосов
/ 12 марта 2019

Токен обновления является долгоживущим токеном, и нет смысла возвращать его, так как он все еще действует в течение многих дней. Если 30-дневный срок действия по умолчанию недостаточно велик, вы можете увеличить его до 3650 дней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...