Аутентификация
Получите токены доступа и настройте аутентификацию
Обзор аутентификации (API v3)
API WebAsk использует авторизацию по API‑ключу. Создайте ключ в личном кабинете и передавайте его в заголовке
Authorization: Bearer YOUR_API_TOKEN
во всех запросах к API v3.
API v3 использует Laravel Sanctum. Ключ имеет формат
id|строка, например:
42|xK7mP9nQ2wL5eH8jR3vU6tY0iD4aF1bG.
Где получить API-ключ
- 1 Войдите в личный кабинет WebAsk
- 2 Перейдите в раздел Настройки → API или напрямую по ссылке app.webask.io/account/api
- 3 Нажмите «Сгенерировать API ключ», задайте название и скопируйте ключ — он показывается только один раз
Скачайте markdown‑версию раздела «Аутентификация» для использования в ChatGPT / других LLM:
AI
Markdown
/static/api/authentication.md
AI
Markdown
Информация о текущем пользователе GET /api/v3/service/user
После получения токена вы можете запросить информацию о владельце токена.
GET
/api/v3/service/user
curl -X GET "https://api.webask.io/api/v3/service/user" \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Accept: application/json"
Использование Bearer‑токена
Добавьте токен в заголовок Authorization всех защищенных запросов к API v3:
GET
/quiz
curl -X GET https://api.webask.io/api/v3/service/quiz \
-H "Authorization: Bearer YOUR_API_TOKEN" \
-H "Content-Type: application/json"
JavaScript (fetch)
fetch('https://api.webask.io/api/v3/service/quiz', {
method: 'GET',
headers: {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
}
})
.then(response => response.json())
.then(data => console.log(data));
Python (requests)
import requests
headers = {
'Authorization': 'Bearer YOUR_TOKEN',
'Content-Type': 'application/json'
}
response = requests.get('https://api.webask.io/api/v3/service/quiz', headers=headers)
data = response.json()
PHP (cURL)
$url = 'https://api.webask.io/api/v3/service/quiz';
$token = 'YOUR_TOKEN';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Authorization: Bearer ' . $token,
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode === 200) {
$data = json_decode($response, true);
echo json_encode($data, JSON_PRETTY_PRINT);
} else {
echo "Error: HTTP $httpCode";
}
PHP (Guzzle)
use GuzzleHttp\Client;
use GuzzleHttp\Exception\RequestException;
$client = new Client();
$token = 'YOUR_TOKEN';
try {
$response = $client->get('https://api.webask.io/api/v3/service/quiz', [
'headers' => [
'Authorization' => 'Bearer ' . $token,
'Content-Type' => 'application/json'
]
]);
$data = json_decode($response->getBody(), true);
echo json_encode($data, JSON_PRETTY_PRINT);
} catch (RequestException $e) {
echo "Error: " . $e->getMessage();
}
Рекомендации по безопасности
Не делайте
- Не передавайте токены в URL параметрах
- Не коммитьте токены в публичные репозитории
- Не передавайте токены в клиентском коде
- Не используйте один токен для разных приложений
Рекомендуется
- Используйте переменные окружения для хранения токенов
- Регулярно ротируйте токены
- Используйте HTTPS для всех запросов
Обработка ошибок аутентификации
Коды ошибок
| Код | Описание | Решение |
|---|---|---|
| 401 | Неверный или отсутствующий токен | Проверьте правильность токена в заголовке Authorization |
| 403 | Токен не имеет прав доступа | Проверьте права доступа токена в настройках |
| 429 | Превышен лимит запросов | Уменьшите частоту запросов или обновите тарифный план |