OAuth 2.0 и PKCE
Поток authorization code + PKCE для приложений, которым нужно действовать от имени пользователя.
1 мин чтения Разделов: 2
Beklio Auth поддерживает поток authorization code для зарегистрированных OAuth-клиентов. Для публичных клиентов (мобильные приложения, SPA) PKCE обязателен, принимается только метод S256.
Порядок действий#
- Сгенерируйте случайный
code_verifierи вычислитеcode_challenge = BASE64URL(SHA256(code_verifier)). - Перенаправьте пользователя на
https://accounts.beklio.com/oauth/authorizeс параметрамиresponse_type=code,client_id,redirect_uri,scope,state,code_challengeиcode_challenge_method=S256. - После согласия пользователя он возвращается на ваш
redirect_uriсcodeиstate. Обязательно проверяйте значениеstate. - Обменяйте код на токены.
token-exchange.sh
curl -X POST "https://api.beklio.com/oauth/token" \
-H "Content-Type: application/json" \
-d '{
"grant_type": "authorization_code",
"client_id": "YOUR_CLIENT_ID",
"code": "AUTHORIZATION_CODE",
"redirect_uri": "https://app.example.com/callback",
"code_verifier": "YOUR_CODE_VERIFIER"
}'Ответ содержит access_token, token_type: "Bearer", expires_in и, если клиенту это разрешено, refresh_token.
Правила#
redirect_uriдолжен в точности совпадать с одним из адресов, зарегистрированных для клиента.- Authorization code одноразовый и недолговечный; повторный обмен с тем же кодом отклоняется.
- Для обновления используйте
grant_type: "refresh_token".
Чего-то не хватает или есть ошибка? Напишите в поддержку; приложив значение X-Request-Id из ответа, вы ускорите решение.