我正在使用Amazon Cognito登录用户并保存import java.sql.PreparedStatement;
import java.sql.SQLException;
import org.apache.ibatis.type.JdbcType;
import org.apache.ibatis.type.ObjectTypeHandler;
import com.google.common.base.Joiner;
public class ListTypeHandler extends ObjectTypeHandler {
@Override
public void setParameter(PreparedStatement ps, int i, Object parameter, JdbcType jdbcType) throws SQLException {
ps.setObject(i, Joiner.on(",").join((Iterable<?>) parameter), JdbcType.OTHER.TYPE_CODE);
}
}
,以便他们在初始设置后不必输入密码。我需要能够使用RefreshToken
登录并获得一个新的RefreshToken
来保存,以备下次使用。但是,当我呼叫RefreshToken
时,它不会返回InitiateAuthAsync
。
C#:
RefreshToken
响应:
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;
这是具有有效ResponseToken的登录响应:
{
"AuthenticationResult": {
"AccessToken": "<accessToken>",
"ExpiresIn": 3600,
"IdToken": "<idToken>",
"TokenType": "Bearer"
},
"ChallengeParameters": {}
}
答案 0 :(得分:1)
显然,这是AWS Cognito API中的错误。 docs说InitiateAuth
应该返回一个更新的RefreshToken,但不会。
答案 1 :(得分:0)
刷新令牌是一个长期存在的令牌,没有意义返回它,因为它仍然有效许多天。如果默认的30天到期时间不够长,则可以将其最多增加到3650天。