Найти в Дзене
Alex Pevnenko

Протокол OAuth 2.0: что это и пример использования

Всем привет! В данной статье хотел бы разобраться в такой технологии как OAuth 2.0. Очень часто на слуху, но редко удавалось попробовать поработать как разработчику. Всем приятного и безопасного чтения! 😉 В современном мире безопасности и удобства в интернете протокол OAuth 2.0 стал одним из ключевых стандартов. Многие из нас даже не подозревают, что ежедневно используют его — например, когда заходим на сайты через кнопки «Войти с помощью Google» или «Войти с помощью Facebook». Давайте разберём, что такое OAuth 2.0 и как он работает на примере. OAuth 2.0 (Open Authorization) — это открытый стандарт авторизации, который позволяет одному приложению (клиенту) получать ограниченный доступ к ресурсам другого сервиса от имени пользователя. Он решает важную задачу: пользователю не нужно передавать свой логин и пароль стороннему приложению, чтобы предоставить ему доступ к данным. Вместо этого используется специальный токен доступа (access token). Протокол OAuth 2.0 широко используется для
Оглавление

Всем привет!

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

❓Что такое OAuth 2.0?

В современном мире безопасности и удобства в интернете протокол OAuth 2.0 стал одним из ключевых стандартов. Многие из нас даже не подозревают, что ежедневно используют его — например, когда заходим на сайты через кнопки «Войти с помощью Google» или «Войти с помощью Facebook». Давайте разберём, что такое OAuth 2.0 и как он работает на примере.

OAuth 2.0 (Open Authorization) — это открытый стандарт авторизации, который позволяет одному приложению (клиенту) получать ограниченный доступ к ресурсам другого сервиса от имени пользователя.

Он решает важную задачу: пользователю не нужно передавать свой логин и пароль стороннему приложению, чтобы предоставить ему доступ к данным. Вместо этого используется специальный токен доступа (access token).

Протокол OAuth 2.0 широко используется для интеграции сервисов:

  • Авторизация через социальные сети (Google, Facebook, GitHub)
  • Доступ к API (например, GitHub API, Google Drive API)
  • Интеграция с облачными сервисами

⚙️Как работает OAuth 2.0: шаг за шагом

Разберём процесс на примере: предположим, вы хотите подключить приложение для планирования задач к своему аккаунту в Google Календаре.

1️⃣ Пользователь инициирует подключение

Приложение предлагает «Подключить Google Календарь».

2️⃣ Перенаправление на страницу авторизации

Пользователь перенаправляется на страницу авторизации Google и видит запрос на доступ:

  • Просмотр событий календаря
  • Создание новых событий

3️⃣ Выдача временного кода

После согласия пользователь возвращается в приложение с временным кодом (authorization code).

4️⃣ Обмен кода на токен доступа

Приложение отправляет код на сервер авторизации Google и получает access token.

5️⃣ Доступ к данным

С помощью токена приложение может создавать или читать события в календаре пользователя.

🌐 Пример: OAuth 2.0 в Java (GitHub API)

Представим, что ты создаешь приложение на Java, которое позволяет пользователям входить через GitHub и получать список их репозиториев.

🛠 Что нужно подготовить:

  • Зарегистрировать приложение в GitHub Developer Settings.
  • Получить Client ID и Client Secret.
  • Указать Redirect URI (например, http://localhost:8080/callback).
Жмакаем по кнопке и создаем себе приложение
Жмакаем по кнопке и создаем себе приложение

Далее нас встречает страница настроек:

-3

  • Application name - название вашего приложения, которое будет отображаться пользователю на странице авторизации GitHub (Я написал как OAuth Example, у вас может быть любое)
  • Homepage URL - это просто ссылка для справки. GitHub использует её, чтобы пользователи могли перейти на сайт приложения (например, из интерфейса авторизации). В нашел случае это тестовое приложение
  • Redirect URI — это адрес, куда GitHub вернёт пользователя с кодом авторизации (например, http://localhost:8080/callback)
  • Device Flow — это отдельный режим авторизации OAuth 2.0, предназначенный для устройств, у которых нет браузера (например, телевизоры, IoT-устройства, терминалы). Не нужно в нашем примере

Готово:

-4

Далее генерируем себе клиентский секрет и можно переходить к Java коду

Создаем Java приложение.

Базовый контроллер:

-5

Точку входа:

-6

И набросал пару страниц для удобства:

-7

Разумеется в пропертях вам нужно указать свои значения, которые были получены на 1 шаге в GitHub

Надо подстваить ваши значения
Надо подстваить ваши значения

И можно запускать приложение (в браузере заходим на http://localhost:8080)

-9

После того как нажали на надпись о предложении войти через GitHub получаем такую вот красоту:

-10

И как итог:

-11

Ссылка на код из данной статьи найдете ниже

✅Преимущества OAuth 2.0

  • Безопасность: пользователь не передаёт логин/пароль сторонним приложениям.
  • Гибкость: можно настроить, к каким данным будет доступ (scope).
  • Универсальность: подходит для мобильных, веб- и десктоп-приложений.

Заключение

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

Если вы разрабатываете приложение и хотите подключить сторонний сервис, скорее всего, вам пригодится OAuth 2.0.

Весь код к данной статье можете найти тут

#OAuth2 #OAuth #API #Авторизация #WebSecurity #ИнтернетБезопасность #Программирование #Backend #WebDevelopment #APIИнтеграция #БезопасностьДанных #OAuth2Пример #OAuth2ЧтоЭто #OAuth2Программирование #OAuth2ДляНачинающих #ITСтатья #РазработкаПриложений #OAuthВебРазработка