Что я пытаюсь сделать, так это то, что пользователь должен войти в Google с моим приложением форм Xamarin, а затем приложение должно проверить маркер пользователя на сервере.Так что я ввел логин в Xamarin с Xamarin.Auth
и смог получить следующие токены:
- access_token
- refresh_token
- id_token
Когда я читаю документацию по аутентификации функций Azure, я должен сделать запрос POST и предоставить id_token в качестве client_id для https://mysite.azurewebsites.net/.auth/login/google в теле в виде JSON.
Это приводит к
400 - неверные учетные данные клиента
от почтальона.
В Google APIS / Services у меня есть одно приложение с двумя учетными данными
- Вкл. Для Android для моего приложения
- Вкл. Для веб-приложения для моих функций Azure
Я следовал руководству и включил аутентификацию Google в своей функции Azure с помощью идентификатора приложения и секрета.
Код 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.