#Tech
🟡 Авторизация через OAuth 2.0: принципы работы и применение
Знакомы с кнопкой "Войти через Google"? Это удобное решение, которое избавляет нас от необходимости запоминать ещё один пароль. Давайте разберемся в механизме работы этой технологии, почему крупные сервисы вроде Spotify и Medium активно её используют, и как вы можете внедрить подобную систему в своё приложение. Стоит отметить, что реализация такой системы проще, чем может показаться, и значительно безопаснее традиционных форм регистрации.
Что представляет собой OAuth
OAuth – это протокол, позволяющий приложениям получить авторизацию через сторонние платформы (Google, GitHub, Яндекс и другие) без необходимости хранения и обработки паролей пользователей.
Ключевые участники процесса OAuth:
➖Пользователь (Владелец ресурса)
Человек, желающий авторизоваться в приложении. Например, пользователь с аккаунтом в Google, владеющий информацией в этом аккаунте.
➖Приложение (Клиент)
Ваш веб-сервис, которому требуется авторизация. Приложение стремится получить доступ к определенным данным пользователя, например имени, для подтверждения личности, не запрашивая пароль напрямую. Приложение делегирует проверку и авторизацию пользователя сервисам вроде Google или GitHub.
➖Хранилище данных (Сервер ресурсов)
Сервер, где хранится информация об учетной записи пользователя. При использовании авторизации через Google, сервером ресурсов будут системы Google, содержащие пользовательские данные.
➖Система проверки (Сервер авторизации)
Сервер, проверяющий личность пользователя и выдающий токен доступа вашему приложению. В случае с Google авторизацией, это тоже сервер Google.
Последовательность действий в процессе OAuth
1️⃣Подготовка приложения
Для использования OAuth необходимо зарегистрировать ваше приложение у провайдера OAuth (Google, Яндекс и др.). На портале разработчиков вы указываете:
- Название приложения
- Адрес веб-сайта
- URL для перенаправления пользователя после авторизации (Callback URL)
После регистрации вы получаете два важных идентификатора:
- ID клиента (Client ID)
- Секретный ключ (Client Secret)
Эти данные подтверждают, что запросы поступают именно от вашего приложения.
2️⃣Начало авторизации
Пользователь открывает ваше приложение и хочет войти. Ваше приложение предоставляет ссылку для авторизации, которая перенаправит на сервис OAuth-провайдера.
3️⃣Вход пользователя и разрешение доступа
После перехода по ссылке пользователь попадает на страницу входа провайдера, вводит свои учетные данные и видит запрос на разрешение доступа к своим данным для вашего приложения.
4️⃣Получение авторизационного кода
После подтверждения доступа провайдер перенаправляет пользователя обратно на указанный URL, одновременно передавая код авторизации.
5️⃣Обмен кода на токен
Ваше приложение получает код авторизации и отправляет запрос на сервер авторизации провайдера для получения токена доступа. Сервер проверяет код и выдаёт токен доступа (иногда также токен для продления доступа). С этим токеном ваше приложение может получать информацию о пользователе до истечения срока его действия.
Несмотря на существование различных сценариев авторизации в OAuth, описанная выше схема остаётся наиболее распространённой в современных веб-приложениях.
🌐 Новости
🖥 База вопросов
Post #106
107

- 👍 2