Этот гайд проведёт вас через полный 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": "..."
}
Что дальше
- Конфигурация — настройте Versola под свою среду
- API Reference — полная документация эндпоинтов