Xamarin.Auth не в состоянии завершить с Trakt

Я создаю приложение как клиент Trakt, используя Xamarin. Для аутентификации пользователей я использую Xamarin.Auth, потому что он кроссплатформенный. Однако после успешной аутентификации она не вызывает обработчик завершенных событий. Событие вызывается только после того, как я нажимаю кнопку "Назад", но оно возвращает нулевой объект Account и false IsAuthenticated. Мне интересно, если это потому, что URI перенаправления является недействительным.

Пожалуйста, смотрите мой код ниже.

[assembly: ExportRenderer(typeof(LoginView), typeof(LoginViewRenderer))]
namespace ShowsCalendar.Droid.ViewRenderer
{
public class LoginViewRenderer : PageRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
    {
        base.OnElementChanged(e);

        var context = Forms.Context;

        var baseAddress = ConfigHelper.TraktAPIURL;
        var auth = new OAuth2Authenticator(
            clientId: ConfigHelper.ClientID,
            redirectUrl: new Uri("urn:ietf:wg:oauth:2.0:oob"),
            scope: "",
            authorizeUrl: new Uri(baseAddress + "/oauth/authorize?response_type=code")
            );
        auth.AllowCancel = true;
        auth.Completed += AuthenticateCompleted;            
        var intent = auth.GetUI(context);
        context.StartActivity(intent);
    }

    private void AuthenticateCompleted(object sender, AuthenticatorCompletedEventArgs e)
    {
        if (!e.IsAuthenticated)
        {
            return;                
        }
        App.AccessToken = e.Account.Properties["access_token"].ToString();
        AccountStore.Create().Save(e.Account, "Trakt");
    }
}

}

0 ответов

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