Кредит Джеку Роберту Скотту за оригинальный пост.
Ранее на этой неделе я запрыгнул на свой компьютер, пытаясь интегрировать простой способ входа пользователей на сайт, который я создаю для проведения школьного хакатона. Блуждая по Интернету в поисках такого метода, я заметил, что заходил на множество веб-сайтов, используя свою учетную запись 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 из этой ветки переполнения стека.
Если у вас есть какие-либо вопросы, пожалуйста, оставьте комментарий, и я сделаю все возможное, чтобы ответить на них!