avatar
Артём Шумейко
@artemshumeiko
05.06.2025 14:45
Как работает авторизация через Google/GitHub/Яндекс и т.п.

Один из самых простых и надежных способов регистрировать пользователей на сайте — дать им возможность войти через гугл/вк/яндекс или другой сервис, который реализует протокол OAuth.

OAuth — это по сути публичная апишка, которую гиганты дают разработчикам, чтобы мы логинили своих пользователей.

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

Как это работает (на примере Google):
1. Регаемся в панели разработчика в гугле и получаем публичный и секретный ключи
2. Добавляем на фронте кнопочки для авторизации. При клике на кнопку бэкенд (у нас на FastAPI) генерирует уникальную ссылку для авторизации, где вы выбираете через какой гугл аккаунт залогиниться и какие доступы пошарить с сайтом
3. Гугл дает нам уникальный ключ. И мы редиректим юзера на страницу по типу solvit.space/auth?key=12345.
4. Фронт посылает запрос на бэк с этим ключом 12345.
5. Бэк посылает запрос в гугл с ключом, чтобы получить данные о пользователе (имя, idшник, аватарку и т.п.)
6. В зависимости от ситуации бэк либо регистрирует либо логинит пользователя на сайте

...Пока писал пост, понял, что шагов реально много и выглядит непросто


Может замутить отдельный ролик про OAuth? Прям полноценно с настройкой домена, регистрацией, авторизацией и аутентификацией? Мне кажется, будет бомба. М?
325
👍 135
emoji 43
🔥 15
👏 2
60 79 13.8K

Обсуждение 60

Обсуждение не доступно в веб-версии. Чтобы написать комментарий, перейдите в приложение Telegram.

Обсудить в Telegram