Я создаю веб-приложение в vs2017 с помощью c #.Мое требование - разрешить пользователю выполнять вход через Google.Обратите внимание, что я не знаю MVC, поэтому я должен написать код на странице .cs
Я прочитал эту статью https://developers.google.com/identity/sign-in/web/sign-in и реализовал ее соответствующим образом.
Я также создалИдентификатор клиента oAuth и секрет клиента.
Я также установил - Install-Package Google.Apis.Oauth2.v2 -Версия 1.38.0.1532
Я совершенно пуст, как продолжить.Я прочитал так много статей, но я не знаю, как реализовать это в коде на c #.
Как отправить токен доступа в API - есть так много API - которые получат всю эту информациюа именно: имя, фамилия, дата рождения или возраст, номер телефона, адрес электронной почты, адрес, город или город, почтовый индекс?
Я понимаю, что People API доставит мне электронную почту и полное имя.
Буду признателен, если кто-нибудь может помочь мне продвинуться вперед: какой еще пакет nuget я должен установить и как я могу отправить токен в API через код c #
Создал кнопку в Test.aspx page
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId()); // Do not send to your backend! Use an ID token instead.
// The ID token you need to pass to your backend:
var id_token = googleUser.getAuthResponse().id_token;
console.log("ID Token: " + id_token);
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
var xhr = new XMLHttpRequest();
xhr.open('POST', 'http://localhost:53028/1.aspx');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function () {
console.log('Signed in as: ' + xhr.responseText);
};
xhr.send('idtoken=' + id_token);
}
On 1.aspx.cs
string idToken = Request.Form["idtoken"].Trim();
Я хочу имя, фамилию, дату рождения или возраст, номер телефона,Электронная почта, адрес, город или город, почтовый индекс.
Обновление: я добавил эти строки кода в мой файл .cs, и он возвращает имя.
UserCredential credential = GoogleWebAuthorizationBroker.AuthorizeAsync(
new ClientSecrets
{
ClientId = "1basa5.apps.googleusercontent.com",
ClientSecret = "AG0LvAwZAD123"
},
new[] { "profile", "https://www.googleapis.com/auth/contacts.readonly" },
"me",
CancellationToken.None).Result;
// Create the service.
var service = new PeopleService(new BaseClientService.Initializer()
{
HttpClientInitializer = credential,
ApplicationName = "M_Test",
});
PeopleResource.GetRequest peopleRequest = service.People.Get("people/me");
peopleRequest.RequestMaskIncludeField = "person.names";
Person profile = peopleRequest.Execute();
Теперь, что тогда здесь от id_Token?Если я не передам его xhr.send ('idtoken =' + id_token);со страницы клиента?