Расширение CognitoAuthentication для.NET с проблемой Unity (StartWithSrpAuthAsync())

После импорта AWS-SDK для.NET-библиотек, включая AWS.Extension.CognitoAuthentication в Unity 2018.2, у меня возникла проблема с StartWithSrpAuthAsync функция взята из AuthenticateWithSrpAsync предоставлено https://aws.amazon.com/blogs/developer/cognitoauthentication-extension-library-developer-preview/

Код с сайта:

public async void AuthenticateWithSrpAsync()
{
    var provider = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(),
                                                           FallbackRegionFactory.GetRegionEndpoint());
    CognitoUserPool userPool = new CognitoUserPool("poolID", "clientID", provider);
    CognitoUser user = new CognitoUser("username", "clientID", userPool, provider);

    string password = "userPassword";



    AuthFlowResponse context = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest()
    {
        Password = password
    }).ConfigureAwait(false);

}

}

Я хочу, чтобы скрипт кнопки принимал имя пользователя и пароль от пользователя и аутентифицировал его с помощью UserPool, который я создал в Cognito.

Скрипт кнопки

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using Amazon;
using Amazon.Runtime;
using Amazon.CognitoIdentityProvider;
using Amazon.Extensions.CognitoAuthentication;


public class test : MonoBehaviour {

public string userName;
public string userPassword;
public string clientID;
public string poolID;


public AuthFlowResponse authResponse;
public CognitoUserPool userPool;
public AmazonCognitoIdentityProviderClient provider;
public CognitoUser user;

void Start()
{

}
public void OnClick()
{
    try
    {
        AuthenticateWithSrpAsync();
    }
    catch(Exception ex)
    {
        Debug.Log(ex);
    }

}

public async void AuthenticateWithSrpAsync()
{
    RegionEndpoint CognitoIdentityRegion = RegionEndpoint.USEast1;
    provider = new AmazonCognitoIdentityProviderClient(null, CognitoIdentityRegion);
    userPool = new CognitoUserPool(poolID, clientID, provider, null);
    user = new CognitoUser(userName, clientID, userPool, provider);
    string name = user.Username.ToString();
    Debug.Log(name);
    authResponse = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest() {

        Password = userPassword

    }).ConfigureAwait(false);
    Debug.Log(user.SessionTokens.IdToken);
    Debug.Log("Success");
}

}

Клиент приложения не требует секретного ключа.

Клиент приложения

https://imgur.com/a/NUzBghb

Статус пользователя подтвержден / включен, а адрес электронной почты подтвержден.

пользователь

https://imgur.com/lsnG5tT

В конечном итоге сценарий запускается до тех пор, пока не доберется до:

authResponse = await user.StartWithSrpAuthAsync(new InitiateSrpAuthRequest() {

    Password = userPassword

}).ConfigureAwait(false);
Debug.Log(user.SessionTokens.IdToken);
Debug.Log("Success");

И ничего не делает потом. Ни одна из отладок не отображается в консоли, а также сообщения об ошибках или предупреждения.

Консоль Unity:

https://imgur.com/Hxpcmoj

Я просмотрел вопросы Stackru, а также все другие ресурсы, которые я мог найти в Google. Я также повторил это в Unity 2017.3

Я использую.NetFramework 4.6

2 ответа

Попробуйте установить флажок "Включить имя пользователя-пароль (не SRP)..., показанный на изображении по ссылке https://imgur.com/a/NUzBghb.

Я не думаю, что это связано с Unity, так как тот же код работает нормально на моем конце. Можете ли вы попробовать следующее: _provider = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(),);

Другие вопросы по тегам