Xamarin.Auth Facebook login Завершенное событие не стреляет - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь создать приложение Xamarin.Forms с кнопкой входа в Facebook.Все работает до той части, где событие Completed, которое никогда не запускается.

Я использую PageRenderer, чтобы инициировать поток аутентификации следующим образом:

[assembly: ExportRenderer(typeof(Page1), typeof(LoginPageRenderer))]
namespace xmrn1.Droid {
    class LoginPageRenderer : PageRenderer {
        private const string ClientId = "<sanitized>";

        public LoginPageRenderer(Context ctx) : base(ctx) { }

        protected override void OnElementChanged(ElementChangedEventArgs<Page> e) {
            base.OnElementChanged(e);

            var authorizeUri = new Uri("https://www.facebook.com/dialog/oauth/");
            var redirectUri = new Uri($"fb{ClientId}://authorize");
            var auth = new OAuth2Authenticator(
                ClientId,
                "email",
                authorizeUri,
                redirectUri);

            auth.Completed += Auth_Completed;
            var ui = auth.GetUI(Context);
            Context.StartActivity(ui);
        }

        private void Auth_Completed(object sender, AuthenticatorCompletedEventArgs e) {
            // This never gets called
        }
    }
}

И этомои настройки "Facebook Login":

Imgur

и мои "Расширенные настройки":

Imgur

1 Ответ

0 голосов
/ 18 декабря 2018

Нашел ответ, мне пришлось включить Web OAuth Login в настройках Facebook Login, а также изменить redirectUri на некоторый URI в моем домене и добавить этот URI к Valid OAuth Redirect URIs в том же самомОкно настроек.

Странно, но теперь, когда я вхожу в систему и появляется подсказка с кодом двухфакторной аутентификации, мой телефон отображает всплывающее уведомление аутентификатора с просьбой подтвердить, а когда я нажимаю «Да»,не подтверждает автоматически логин, я все равно должен вручную ввести код 2fa ...

...