VersolaVersola/docs
versola.kzGitHub

OAuth 2.1

Что изменилось в OAuth 2.1 по сравнению с OAuth 2.0

OAuth 2.1 — это не новый протокол, а консолидация лучших практик OAuth 2.0. Он убирает устаревшие и небезопасные flow, делая стандарт чище.

Ключевые изменения

PKCE обязателен для всех клиентов

В OAuth 2.0 PKCE (Proof Key for Code Exchange) был рекомендован только для публичных клиентов. OAuth 2.1 требует его для всех — включая конфиденциальных клиентов с client_secret.

code_verifier  →  SHA-256  →  Base64URL  →  code_challenge

Удалены небезопасные grant types

Grant type OAuth 2.0 OAuth 2.1
Authorization Code + PKCE
Client Credentials
Refresh Token
Implicit ✗ удалён
Resource Owner Password ✗ удалён

Refresh token rotation

При каждом обновлении токена старый refresh token аннулируется и выдаётся новый. Если старый токен использован повторно — вся сессия инвалидируется.

Bearer tokens только через Authorization header

Передача токена через URL (query parameter) запрещена.

Authorization Code Flow

Пользователь → Ваш сайт → Versola (логин/согласие) → Ваш сайт (с кодом)
Ваш сайт → Versola (обмен кода на токен) → Access Token + ID Token