0

我试图完成的是用户应该使用我的 Xamarin 表单应用程序登录到谷歌,然后应用程序应该验证用户令牌服务器端。到目前为止,我已经在 Xamarin 中实现了登录,Xamarin.Auth并且我能够获得这些令牌:

  • 访问令牌
  • 刷新令牌
  • id_token

当我阅读 Azure 函数身份验证的文档时,我应该发出 POST 请求并将 id_token 作为 client_id 提供给正文中的https://mysite.azurewebsites.net/.auth/login/google 作为 JSON。

这导致一个

400 - 无效的客户凭证

来自邮递员。

在 Google APIS/Services 中,我有一个带有两个凭据的应用程序

  • 为我的应用开启 Android
  • 为我的 Azure 函数启用 Web 应用程序

我按照指南并在我的 Azure 函数中使用 App id 和密码启用了 Google 身份验证。

Xamarin 代码:

    public partial class LoginPage : ContentPage
    {
        public static OAuth2Authenticator Auth;
        public AuthenticatorPage AuthPage;
        public LoginPage()
        {
            InitializeComponent();

            Auth = new OAuth2Authenticator(
                "AndroidGoogleApiIdString.apps.googleusercontent.com",
                string.Empty,
                "email",
                new Uri("https://accounts.google.com/o/oauth2/v2/auth"),
                new Uri("com.companyname.AppName:/oauth2redirect"),
                new Uri("https://www.googleapis.com/oauth2/v4/token"),
                null,
                true);

            Auth.CreateRequestQueryParameters(new System.Collections.Generic.Dictionary<string, string>()
            {
                {"requestServerAuthCode", "AzureFunctionGoogleAppIdString.apps.googleusercontent.com" },
                {"response_type", "code" }
            });

            AuthPage = new AuthenticatorPage(Auth);

            Auth.Completed += Auth_Completed;
            Auth.Error += Auth_Error;
        }

        ...
}

Azure 函数设置。 Azure 函数身份验证屏幕截图

4

0 回答 0