代码之家  ›  专栏  ›  技术社区  ›  vytaute

如何配置Google API验证器(重定向URL值)?

  •  0
  • vytaute  · 技术社区  · 3 年前

    我想让用户使用他们的谷歌帐户连接到我的Xamarin Forms应用程序。我一直在学习本教程: https://www.syncfusion.com/blogs/post/google-login-integration-in-xamarin-forms-a-complete-guide.aspx

    重定向URL值中应该包含什么?现在我有“400错误:invalid_request”。我可能应该在某个地方注册那个页面?那个页面应该是什么?我想在登录后获取用户信息,并将其重定向到主应用程序页面(主页())。

    我有这个代码:

        Xamarin.Auth.OAuth2Authenticator authenticator = null;
        private void SignInGoogleClicked(object sender, EventArgs e)
        {
            authenticator
                = new Xamarin.Auth.OAuth2Authenticator
                (
                    clientId: "498923533154-uefrhbk3i9v7nqd7lep9lqb85u783m7v.apps.googleusercontent.com",
                    scope: "https://www.googleapis.com/auth/userinfo.profile https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/cloud-healthcare",
                    authorizeUrl: new Uri("https://accounts.google.com/o/oauth2/auth"),
                    redirectUrl:
                    new Func<Uri>
                    (
                        () =>
                        {
                            string uri = null;
                            switch (Xamarin.Forms.Device.RuntimePlatform)
                            {
                                case "Android":
                                    uri =
                                        "com.xamarin.traditional.standard.samples.oauth.providers.android:/oauth2redirect"
                                        //"com.googleusercontent.apps.1093596514437-uefrhbk3i9v7nqd7lep9lqb85u783m7v:/oauth2redirect"
                                        ;
                                    break; 
                                case "iOS":
                                    uri =
                                        "com.xamarin.traditional.standard.samples.oauth.providers.ios:/oauth2redirect"
                                        //"com.googleusercontent.apps.1093596514437-cajdhnien8cpenof8rrdlphdrboo56jh:/oauth2redirect"
                                        ;
                                    break;
                                case "Windows":
                                    uri =
                                        "com.xamarin.traditional.standard.samples.oauth.providers.ios:/oauth2redirect"
                                        //"com.googleusercontent.apps.1093596514437-cajdhnien8cpenof8rrdlphdrboo56jh:/oauth2redirect"
                                        ;
                                    break;
                            }
    
                            return new Uri(uri);
                        }
                    ).Invoke(),
                    getUsernameAsync: null,
                    isUsingNativeUI: false
                )
                {
                    AllowCancel = true,
                };
    
            NavigateLoginPage();
        }
    
        Xamarin.Auth.XamarinForms.AuthenticatorPage login_page = null;
    
        private void NavigateLoginPage()
        {
            login_page = new Xamarin.Auth.XamarinForms.AuthenticatorPage()
            {
                Authenticator = authenticator,
            };
            Navigation.PushAsync(login_page);
        }
    
    0 回复  |  直到 3 年前
        1
  •  1
  •   Liqun Shen-MSFT    3 年前

    你可以试试set <your app name>:/oauth2redirect 作为重选url,如下所示: com.companyname.appname:/oauth2redirect

    此外,我们可能会在Android和iOS项目中分别实现谷歌身份验证。

    有关更多信息,您可以参考 Authenticate users through Google with Xamarin.Auth