Кредит Джеку Роберту Скотту за оригинальный пост.

Ранее на этой неделе я запрыгнул на свой компьютер, пытаясь интегрировать простой способ входа пользователей на сайт, который я создаю для проведения школьного хакатона. Блуждая по Интернету в поисках такого метода, я заметил, что заходил на множество веб-сайтов, используя свою учетную запись Google — ага! Простой метод, который я искал, — вход пользователей в систему с помощью Google.

Я предполагал, что это будет довольно простой процесс — и, оглядываясь назад, это так и есть. Но Интернет движется быстро, и исчерпывающую документацию может быть трудно найти (или трудно мотивировать себя читать). Я нашел фантастический учебник, который вы можете найти здесь Джека Роберта Скотта от имени Authpack, в котором быстро рассказывается, как интегрировать Google Auth с Node.js. Это работало отлично, по крайней мере, до последнего шага. В этом руководстве Google+ используется для доступа к пользовательским данным, но с 2020 года Google+ устарел. Так и начинается паника.

Но не беспокойтесь! Решение кроется в Google People API, который я понял благодаря этому комментарию (спасибо!) После небольшого копания и много проб и ошибок я понял, как чтобы переделать это руководство, чтобы оно работало в пост-эру Google+.

Шаг 1: следуйте инструкциям Скотта 📕

Следуйте его инструкции здесь, тогда мы сможем добавить свои модификации.

Шаг 2. Добавление Google People API 📇

Прежде чем редактировать какой-либо код, нам нужно включить API Google People на облачной платформе Google для нашего проекта. Перейдите на вкладку «Библиотека» в разделе «API и службы» вашего проекта.

Найдите в библиотеке API Google People API и нажмите на первый результат. Затем нажмите синюю кнопку с надписью ВКЛЮЧИТЬ, чтобы включить API.

Здорово! Шаг первый все готово. Здесь больше нечего делать. Теперь мы можем программировать и притворяться, что мы Нео из Матрицы (это то, что я люблю делать, но каждому свое).

Шаг 3: Редактирование области действия и функции доступа к API 👩‍💻

Теперь мы хотим отредактировать переменные области видимости, к которым мы хотим получить доступ. Я включил области, относящиеся к пользовательской информации, к которой вы, скорее всего, захотите получить доступ. Вы можете увидеть полный список областей действия OAuth 2.0 здесь.

  • Отредактируйте константу областей действия по умолчанию, чтобы включить информацию о пользователе, профиле, электронной почте и openid:

Нам также нужно изменить API, к которому мы обращаемся из Google, в функции getGooglePlusApi. Я изменил название функции на getGooglePeopleApi, чтобы оно соответствовало обновленным функциям.

  • Обновите функцию getGooglePlusApi, чтобы она соответствовала:

Теперь мы готовы получить наши данные!

Шаг 4. Получение данных с помощью Google People API 📁

Теперь мы можем отредактировать функцию getGoogleAccountFromCode, чтобы использовать API Google People.

  • Сделать функцию асинхронной
  • Настройка учетных данных для аутентификации
  • Получить API
  • Получить данные из API

Обратите внимание, что код поиска является прямой модификацией кода из данного официального образца.

Прямо сейчас у меня есть функция, возвращающая etag пользователя и его адрес электронной почты. Используя People API, вы можете запросить гораздо больше параметров в зависимости от ваших потребностей. Вы можете проверить все возможные параметры для запроса из списка People API здесь, в официальной документации.

Вуху 🦀🦀

Все сделано! Я надеюсь, что эти изменения помогут вам и сделают жизнь немного проще. Большое спасибо Джеку Роберту Скотту за написание оригинальной статьи (это сэкономило мне многовремени). Я отдаю должное соответствующим первоначальным авторам всего кода в этом руководстве, за исключением тех фрагментов, которые я добавил.

Кстати, я получил крутую кнопку входа в Google из этой ветки переполнения стека.

Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, и я сделаю все возможное, чтобы ответить на них!