Привет, я разработчик приложений для Android, я использую механизм аутентификации cognito для мобильного приложения. Как только я аутентифицирую своего пользователя, я получаю RefreshToken
и IDToken
. Согласно Amazon Cognito, срок его действия истекает IDToken
ровно через час. Я пытаюсь снова заставить мой сеанс получить токен, и вот как я пытаюсь это сделать.
String poolId = 'xxxxxx';
String clientId = 'xxxxxx';
String clientSecret = 'xxxxxx';
CognitoUserPool userPool = new CognitoUserPool(context, poolId, clientId, clientSecret,Regions.EU_WEST_1);
CognitoUser user = userPool.getUser();
user.getSessionInBackground(new AuthenticationHandler() {
@Override
public void onSuccess(CognitoUserSession userSession, CognitoDevice newDevice) {
String idToken = userSession.getIdToken().getJWTToken();
Map<String, String> logins = new HashMap<String, String>();
logins.put("cognito-idp." + Constants.REGION + ".amazonaws.com/" + Constants.UserPool, userSession.getIdToken().getJWTToken());
credentialsProvider.setLogins(logins);
credentialsProvider.refresh();
}
@Override
public void getAuthenticationDetails(AuthenticationContinuation authenticationContinuation, String userId) {
Log.i("MQTT","Detail");
}
@Override
public void getMFACode(MultiFactorAuthenticationContinuation continuation) {
Log.i("MQTT","MFACode");
}
@Override
public void authenticationChallenge(ChallengeContinuation continuation) {
Log.i("MQTT","Challenge");
}
@Override
public void onFailure(Exception exception) {
Log.i("MQTT","Fail");
}
});
У меня есть userpoolid
, и мне нужно знать, откуда я могу получить clientID
и clientSecret
. Так что я получаю данные в onSuccess
обратном вызове и получаю IDToken
.
Действительно благодарен, если кто-то может помочь.
Спасибо