Правильный способ реализовать вход в Google

Исследуя способы интеграции google login в свое приложение, я нашел несколько разных способов:

  1. gapi (библиотека js, устаревшая), библиотека Google
  2. ГИС(или GSI, Google Identity Services, новый Google SDK в связи с прекращением поддержки GAPI)
  3. Хотя в этой статье говорится, что реализация Oauth2 не влияет устаревание библиотеки Google JS, похоже, указывает на репозиторий Гапи
  4. Сторонние библиотеки, такие как next-auth , паспорт
  5. Хостинговые службы, такие как клерк и keycloak

Имея под рукой все эти варианты, я не совсем уверен, какой вариант лучше всего реализовать. № 1 (из-за того, что он устарел) и 5 ​​(для больших настраиваемых приложений) — не мой выбор. Итак, я задаюсь вопросом, между ГИС и сторонними библиотеками из-за путаницы, добавленной поверх номера. 3.

Мне интересно, интегрировали ли эти библиотеки внутри себя Gapi, поскольку, похоже, это библиотеки oauth2.0, опубликованные Google, и, следовательно, все эти библиотеки могут быть устаревшими, или они будут обновлены до ГИС, и в этом случае нам не нужно эти библиотеки?

Каково было бы обоснование выбора между этими двумя подходами? Стоит ли интегрировать SDK/lib, созданный Google, или стороннюю библиотеку? И как бы я узнал, обновились ли библиотеки до новых политик Google и прекращения поддержки GAPI, если бы они его использовали?

Редактировать: Также интересно, будут ли эти библиотеки поддерживать FedCM, который , по их словам, имеет решающее значение после миграции сторонних файлов cookie . Судя по их исходному коду, они используют одну библиотеку под названием oauth4webapi для реализации next/auth (может быть, и другие?), но я не могу найти ничего, что бы упоминало FedCM в их документах. Аналогичная ситуация и с реализацией oauth в паспорте-js (Я думаю, используется oauth, последняя публикация была 2 года назад)

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
94
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы можете добавить next-auth только в следующем проекте и passport для аутентификации на сервере. clerk и kinde — хорошие варианты, которые можно интегрировать с разными поставщиками аутентификации, а не только с Google.

если вы фокусируетесь только на Google Auth, попробуйте этот npm @react-oauth/google

https://blog.logrocket.com/guide-adding-google-login-react-app/

Спасибо за ответ, но он не совсем отвечает на мои вопросы. Кроме того, я добавил редактирование об интеграции FedCM этих сторонних библиотек, можем ли мы ожидать, что они это поддержат?

BumbleBee 13.07.2024 10:41
Ответ принят как подходящий

При таком большом количестве способов интеграции входа в Google может быть сложно сделать выбор. Вот краткое руководство:

Параметры:

  1. Google Identity Services (GIS): это новый официальный SDK Google. Это всегда актуально и безопасно.
  2. Сторонние библиотеки: например, следующая аутентификация, паспорт — они упрощают процесс и предлагают поддержку нескольких поставщиков; однако они полагаются на стороннее обслуживание.

Рекомендации:

  • Используйте ГИС, если вам нужна наиболее безопасная и актуальная интеграция непосредственно от Google. Это лучший способ, если вы ищете только вход в Google.
  • Используйте next-auth или паспорт, если это упрощает настройку и обеспечивает большую гибкость для добавления других методов входа в систему в будущем.

Пример со следующей аутентификацией

  1. Установить следующую аутентификацию
    npm install next-auth
    
  2. Настройте следующую аутентификацию в `pages/api
    import NextAuth from 'next-auth
    import GoogleProvider from 'next-auth/providers
    
    export default NextAuth({
      providers: [
        GoogleProvider({
          clientId: process.env.GOOGLE_CLIENT_ID,
          clientSecret: process.env.GOOGLE_CLIENT_SECRET,
        }),
      ],
    });
    
  3. Добавьте свои учетные данные Google в .env:
    GOOGLE_CLIENT_ID=your-google-client-id
    GOOGLE_CLIENT_SECRET=your-google-client-secret
    

Поддержка FedCM:

  • ГИС будет поддерживать FedCM, поскольку это инициатива Google.

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

Последние мысли:

  • ГИС действительно предназначена для обеспечения безопасности и соблюдения политик Google.
  • Next-auth великолепен, прост в использовании и очень гибок.

Надеюсь это поможет! Дайте мне знать, если у вас есть еще вопросы.

Спасибо за потрясающий ответ. На самом деле я проверил репозитории next-auth и паспорта, и, насколько я мог видеть, они использовали такие вещи, как пакеты «npm oauth» или «npm oauth4web». В большинстве из них ничего не упоминается о FedCM или миграции сторонних файлов cookie. Несмотря на то, что Oauth является стандартным протоколом, изобретенным не Google, в какой-то момент им придется ответить на информацию Google, если они хотят интегрироваться со службами Google (которые в данном случае) раскрывают информацию, связанную с созданием приложений, получением идентификатора клиента и т. д. Итак, я считаю, что эти библиотеки будут менее пригодными для использования, если они не будут обновляться, верно?

BumbleBee 15.07.2024 17:02

Спасибо за продолжение! next-auth и паспорт могут еще не поддерживать FedCM. Следите за обновлениями в их репозиториях на GitHub. Для получения новейшей безопасности и немедленной поддержки FedCM используйте Google Identity Services (GIS). Если вам нужна гибкость при работе с несколькими провайдерами, вам подойдут следующая аутентификация и паспорт, но они зависят от своевременных обновлений сообщества. Надеюсь это поможет!

Cafer Yükseloğlu 17.07.2024 00:39

@CaferYükseloğlu, наткнулся на этот пост... и хотел бы добавить, даже они упоминают, что библиотека входа в Google устарела (Developers.google.com/identity/gsi/web/guides/migration , ... . как целиком?) они по-прежнему рекомендуют проверять полученный токен, используя тот же: Developers.google.com/identity/gsi/web/guides/… . Интересно, есть ли у них репозиторий и для нового ГИС?

juztcode 23.07.2024 10:17

куб.см. @BumbleBee, посмотри мой комментарий выше

juztcode 23.07.2024 10:17

Другие вопросы по теме