Xamarin.Auth Facebook登录完成事件未触发

时间:2018-12-17 20:12:37

标签: facebook xamarin.auth

我正在尝试使用Facebook登录按钮创建Xamarin.Forms应用程序。一切正常,直到发生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登录”设置:

Imgur

以及我的“高级设置”设置:

Imgur

1 个答案:

答案 0 :(得分:0)

找到了答案,我不得不在Web OAuth Login设置中打开Facebook Login,还需要将redirectUri更改为我域中的某个uri,然后将该uri添加到Valid OAuth Redirect URIs在相同的设置窗口中。

但是奇怪的是,现在我登录时,并且出现两因素身份验证代码提示,我的手机上显示了一个身份验证器弹出通知,要求我批准,并且当我按“是”时,它不会自动确认登录后,我还是必须手动输入2fa代码...