VersolaVersola/docs
versola.kzGitHub

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

Первый рабочий OAuth 2.1 Authorization Code flow за 10 минут

Этот гайд проведёт вас через полный Authorization Code flow — от регистрации клиента до получения токена.

1. Зарегистрируйте клиента

curl -X POST http://localhost:8080/admin/clients \
  -H "Content-Type: application/json" \
  -d '{
    "client_id": "my-app",
    "client_secret": "my-secret",
    "redirect_uris": ["http://localhost:3000/callback"],
    "grant_types": ["authorization_code"],
    "scope": "openid profile email"
  }'

2. Получите Authorization Code

Перенаправьте пользователя на:

http://localhost:8080/oauth/authorize
  ?response_type=code
  &client_id=my-app
  &redirect_uri=http://localhost:3000/callback
  &scope=openid profile email
  &state=random-state-value
  &code_challenge=YOUR_CODE_CHALLENGE
  &code_challenge_method=S256

PKCE обязателен — OAuth 2.1 требует PKCE для всех публичных клиентов.

3. Обменяйте код на токен

После редиректа на callback с параметром code:

curl -X POST http://localhost:8080/oauth/token \
  -H "Content-Type: application/x-www-form-urlencoded" \
  -d "grant_type=authorization_code
      &code=AUTHORIZATION_CODE
      &redirect_uri=http://localhost:3000/callback
      &client_id=my-app
      &client_secret=my-secret
      &code_verifier=YOUR_CODE_VERIFIER"

Ответ:

{
  "access_token": "eyJhbGci...",
  "token_type": "Bearer",
  "expires_in": 3600,
  "id_token": "eyJhbGci...",
  "refresh_token": "..."
}

Что дальше