Skip to Content

OAuth-приложения позволяют создавать интеграции, которые другие пользователи RevRoute смогут установить себе — например, коннектор для Zapier-подобного сервиса, sidebar в Notion, мобильный компаньон. Вместо того чтобы просить пользователя вставлять личный API-ключ в ваше приложение, он нажимает Авторизовать — и RevRoute выдаёт вашему приложению scoped access token от его имени.

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

Public vs private приложения

RevRoute поддерживает оба профиля OAuth 2.0 клиентов из RFC 6749  и RFC 7636 :

Private (конфиденциальный)Public
Где работаетКонтролируемый вами бэкендБраузер, мобильное, десктоп-приложение
Имеет client_secretДа — никогда не выставляется наружуНет — secret нельзя безопасно хранить
FlowAuthorization codeAuthorization code + PKCE
Хранение токеновБД на стороне сервераSecure storage на устройстве
Refresh-токеныДаДа (ротируются при каждом использовании)
⚠️

Пометка клиента как “public” отключает client_secret. Если ваша интеграция работает хотя бы частично в браузере или мобильном — выбирайте public и PKCE. Встраивание client_secret в выпущенный код — инцидент безопасности.

Эндпоинты

Все OAuth-эндпоинты живут под https://api.revroute.ru:

НазначениеЭндпоинт
Начало user-facing flowGET https://app.revroute.ru/oauth/authorize
Обмен code на токеныPOST https://api.revroute.ru/oauth/token
Refresh access tokenPOST https://api.revroute.ru/oauth/token (grant refresh_token)
Чтение авторизованного пользователяPOST https://api.revroute.ru/oauth/userinfo

Время жизни токенов

ТокенПо умолчаниюФормат
Authorization code2 минутыОдноразовый
Access token2 часаdub_access_token_... — заголовок Bearer
Refresh token120 днейРотируется при каждом refresh

Refresh-токены ротируются — каждый вызов /oauth/token с grant_type=refresh_token возвращает новый refresh-токен и инвалидирует предыдущий. Сохраняйте самый свежий, иначе следующий refresh упадёт.

Идентификаторы

При создании приложения в /<workspace>/settings/oauth-apps вы получаете:

  • client_id — публичный, с префиксом dub_app_...
  • client_secret — показывается один раз при создании (только для private), с префиксом dub_app_secret_...
  • Один или несколько redirect_uri — exact-match проверка на authorize-эндпоинте

Секрет можно ротировать в любой момент; старый секрет продолжает работать 24 часа для zero-downtime ротации.

Дальше

Быстрый старт

Рабочий пример authorization-code flow от начала до конца.

Scope'ы

Все scope’ы, которые может запросить ваше приложение.

PKCE

Flow, который обязательно используют публичные клиенты (SPA, мобильные).

Ошибки API

Коды ошибок от token-эндпоинта.

Last updated on