Каким образом работает авторизация по Google OAuth в web приложениях?

Ссылка скопирована
1 ответ

Здравствуйте, посмотрел урок по интеграции Google Sign In в web приложение на реакте, немного полистал документацию.
Теперь встал вопрос. Что именно получает клиент при авторизации через Google Sign In? Каким образом в приложениях реализована синхронизация данных с Google OAuth и собственными данными в БД?
Например. Если у меня на сайте есть 2 варианта авторизации: Через собственную форму авторизации и через GooGle Sign In. То как реализовывать авторизацию по первому случаю это наше дело, а вот когда человек кликает по Google Sign In что происходит? То есть Мне предоставляются данные пользователя Google и я должен сам их проверять на наличие в БД и либо авторизовывать пользователя либо регистрировать?
Как вобще работать с этим?

Дополнительно:

Постарайтесь углубиться в описание oauth (в google sign in вроде oauth 2.0) - каноничная дока тут (основы рассказаны в разделах 1.1-1.5), чтобы понимать, где реализация непосредственно oauth, а где особенности реализации. Пример статьи на русском для упрощения.
По-идее, если после успешной авторизации вы получили access token, то надо хранить его в базе на своей стороне и самому делать запросы на обновление инфы о юзере по апи гугла.

  • Получается, юзер залогинен, пока у токена не истек срок действия? Иииили как?
    Получается при каждом входе в сайт/приложение мы проверяем токен? И если он истек то перелогиниваемся? Как в таком случае множество приложений могут просто бесконечно оставаться в залогиненом режиме? Или же можно самому регулировать срок действия выдаваемого токена?
  • dicem, юзеры могут не перелогиниваться, если вместе с access_token сервер авторизации отдает refresh_token - в таком случае, когда запрос с текущим access_token начинает отдавать респонс с ошибкой 401, то надо сделать доп.запрос на урл обновления токена (передать ему refresh_token), и он опять выдаст пару access_token и refresh_token. По идее так, возможно там такого нет, но сам токен имеет долгое время жизни и не особо часто его надо обновлять
Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Никита Орлов Ответ

Для реализации авторизации через Google OAuth в web приложениях необходимо следовать определенным шагам. Вот как это можно сделать:

1. Создайте проект в Google Developers Console и включите API Google OAuth 2.0. Вам потребуется создать учетные данные OAuth 2.0, чтобы получить клиентский идентификатор и секретный ключ.

2. В вашем web приложении добавьте кнопку "Войти через Google", которая будет инициировать процесс авторизации. При нажатии на эту кнопку пользователь будет перенаправлен на страницу Google для ввода своих учетных данных.

3. После успешной аутентификации Google вернет вам код авторизации. Используйте этот код для запроса токена доступа и обновления токена у Google OAuth сервера.

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

Пример кода на PHP для работы с Google OAuth:

 $code,
'client_id' => $client_id,
'client_secret' => $client_secret,
'redirect_uri' => $redirect_uri,
'grant_type' => 'authorization_code'
);

$options = array(
'http' => array(
'header' => "Content-type: application/x-www-form-urlencoded\r

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно