Проблемы при попытке обновить токен с помощью Cognito в Xamarin.Forms - PullRequest
0 голосов
/ 31 октября 2019

Я использую Cognito для входа в мое приложение Xamarin.Forms . Все функции работают нормально, кроме RefreshToken, пожалуйста, мне нужен кто-нибудь, помогите мне, я не могу точно решить проблему.

Это код моей RefreshToken функции:

public async Task<SignInContext> RefreshToken(string userName, string idToken, string accessToken, String refreshToken, DateTime issued, DateTime expires, string deviceKey)
{
    try
    {
        using (var provider = new AmazonCognitoIdentityProviderClient(new AnonymousAWSCredentials(), RegionEndpoint))
        {

            CognitoUserPool userPool = new CognitoUserPool(PoolId, ClientId, provider);
            CognitoUser user = new CognitoUser(userName, ClientId, userPool, provider)
            {
                SessionTokens = new CognitoUserSession(idToken, accessToken, refreshToken, issued, expires)
            };
            //user.Device = new CognitoDevice(deviceKey, new Dictionary<string, string>(), DateTime.Now, DateTime.Now, DateTime.Now, user);

            AuthFlowResponse context = await user.StartWithRefreshTokenAuthAsync(new InitiateRefreshTokenAuthRequest
            {
                AuthFlowType = AuthFlowType.REFRESH_TOKEN_AUTH
            }).ConfigureAwait(true);

            // TODO handle other challenges
            return new SignInContext(CognitoResult.Ok)
            {
                //User = user,
                IdToken = context.AuthenticationResult?.IdToken,
                RefreshToken = context.AuthenticationResult?.RefreshToken,
                AccessToken = context.AuthenticationResult?.AccessToken,
                TokenIssued = user.SessionTokens.IssuedTime,
                Expires = user.SessionTokens.ExpirationTime,
                SessionId = context.SessionID
            };
        }
    }
    catch (NotAuthorizedException)
    {
        return new SignInContext(CognitoResult.NotAuthorized);
    }
    catch (Exception e)
    {
        Console.WriteLine($"RefreshToken() threw an exception {e}");
    }
    return new SignInContext(CognitoResult.Unknown);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...