OAuth2
Astral поддерживает OAuth2 Authorization Code Flow для действий от имени пользователя.
Авторизация (шаг 1)
Перенаправьте пользователя на:
GET https://astral.ru/oauth2/authorize
?client_id=<APP_ID>
&redirect_uri=<ENCODED_URI>
&response_type=code
&scope=identify guilds
&state=<RANDOM_STATE>
Обмен кода на токен (шаг 2)
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=authorization_code
&code=<AUTH_CODE>
&redirect_uri=<SAME_URI>
&client_id=<APP_ID>
&client_secret=<CLIENT_SECRET>
Ответ:
{
"access_token": "eyJ...",
"token_type": "Bearer",
"expires_in": 604800,
"refresh_token": "dGhp...",
"scope": "identify guilds"
}
Обновление токена
POST /oauth2/token
Content-Type: application/x-www-form-urlencoded
grant_type=refresh_token
&refresh_token=<REFRESH_TOKEN>
&client_id=<APP_ID>
&client_secret=<CLIENT_SECRET>
Отзыв токена
POST /oauth2/token/revoke
Content-Type: application/x-www-form-urlencoded
token=<ACCESS_OR_REFRESH_TOKEN>
&client_id=<APP_ID>
&client_secret=<CLIENT_SECRET>
Доступные скоупы
| identify | string | Доступ к /users/@me (без email) |
| email | string | Доступ к email пользователя |
| guilds | string | Доступ к списку серверов пользователя |
| bot | string | Добавление бота на сервер |