Как узнать аутентифицированную электронную почту пользователя, который прошел аутентификацию с помощью своей учетной записи Google для моего приложения - PullRequest
1 голос
/ 05 апреля 2019

Я интегрирую аутентификацию Google для своего приложения для создания событий календаря.

const {google} = require('googleapis');

const SCOPES = ['https://www.googleapis.com/auth/calendar','https://www.googleapis.com/auth/userinfo.email']

Я использовал вышеуказанные области при аутентификации, сгенерировал URL и отправил клиенту.Аутентификация прошла успешно, и я могу получать код и генерировать токен.

Но с кодом мне нужна электронная почта аутентифицированного пользователя, кто бы ни входил в систему. Есть ли способ / пример, чтобы узнать, как получить электронную почту пользователя ?.Я искал в Google для поиска решения.Но я этого не понял.Помогите мне узнать об этом.

Ответы [ 2 ]

0 голосов
/ 05 апреля 2019

Если вы делаете календарь, получите в основном календаре пользователей.У всех пользователей есть основной календарь

запрос

GET https://www.googleapis.com/calendar/v3/calendars/primary

ответ

{
 "kind": "calendar#calendar",
 "etag": "\"JWPyaEfg9X1jMhlHCcI4tl2h6uo/AxePbI13h8-KuIOLek\"",
 "id": "xxxx@gmail.com",
 "summary": "xxx@gmail.com",
 "timeZone": "Europe/Copenhagen",
 "conferenceProperties": {
  "allowedConferenceSolutionTypes": [
   "eventHangout"
  ]
 }
}

И идентификатор, и сводка будутбыть адресом электронной почты пользователя.Делая это таким образом, вам не нужно будет запрашивать https://www.googleapis.com/auth/userinfo.email scope

Node guesss

Примечание: я не являюсь разработчиком node.js, это дикое предположение, что вам придется работатьэто из

function listEvents(auth) {
  const calendar = google.calendar({version: 'v3', auth});
  calendar.about.get({
    calendarId: 'primary'
  }, (err, res) => {
    if (err) return console.log('The API returned an error: ' + err);
    const results = res;
    if (results ) {
      console.log(results.id);
    } else {
      console.log('No upcoming events found.');
    }
  });
0 голосов
/ 05 апреля 2019

После того, как вы получили токен, вам нужно сделать HTTP-запрос к конечной точке userinfo, используя этот токен для получения требуемой информации о пользователе.

Вы можете получить URL для этой конечной точки из документа обнаружения, который можно найти по адресу https://accounts.google.com/.well-known/openid-configuration.

Текущий URL для получения информации о пользователе: https://openidconnect.googleapis.com/v1/userinfo.

...