Android Custom Auth с лямбдами - PullRequest
0 голосов
/ 27 июня 2018

Я пытаюсь реализовать собственный поток аутентификации, используя Amazon Cognito и лямбда-сценарии. Настраиваемая аутентификация запускается, но массив сеанса запроса пуст вместо вызова триггера SRP_a, как это происходит с использованием javascript sdk. Если вызов SRP_a не происходит, он не выполняет вызов PASSWORD_VERIFIER, который необходим для аутентификации имени пользователя / пароля. Примечание: пользовательская часть аутентификации происходит после аутентификации имени пользователя / пароля.

Документация Cognito гласит, что этот процесс возможен на javascript, iOS и Android, но содержит только примеры на javascript. Ниже я включил код Android, который выполняет аутентификацию.

    CognitoHelper cognitoHelper = CognitoHelper.getInstance(getApplicationContext());
    username = loginView.getUsername();
    //Must use toLowerCase to make the username not case sensitive
    cognitoHelper.setUser(username.toLowerCase());
    password = loginView.getPassword();
    AuthFlowType authFlowType = AuthFlowType.fromValue(String.valueOf(AuthFlowType.CUSTOM_AUTH));
    HashMap<String, String> authenticationParameters = new HashMap<>();
    authenticationParameters.put(CognitoServiceConstants.AUTH_PARAM_PASSWORD,password);
    authenticationParameters.put(CognitoServiceConstants.AUTH_PARAM_USERNAME, username);

    SRP_aHelper srp_aHelper = new SRP_aHelper(cognitoHelper.getUserPoolID());
    authenticationParameters.put(CognitoServiceConstants.AUTH_PARAM_SRP_A,srp_aHelper.getA().toString(16));

    InitiateAuthRequest initiateAuthRequest = new InitiateAuthRequest();
    initiateAuthRequest.setClientId(cognitoHelper.getClientID());
    initiateAuthRequest.setAuthFlow(authFlowType);
    initiateAuthRequest.setAuthParameters(authenticationParameters);

    CognitoUser cognitoUser = cognitoHelper.getUserPool().getUser(username);
    thisDevice = cognitoUser.thisDevice();
    //getCIPClient returns a AmazonCognitoIdentityProviderClient
    InitiateAuthResult initiateAuthResult = cognitoHelper.getCipClient().initiateAuth(initiateAuthRequest);
...