Аутентификация

Получите токены доступа и настройте аутентификацию

Обзор аутентификации

WebAsk API использует токены Bearer для аутентификации. Все запросы к API должны содержать заголовок Authorization с вашим API токеном.

Важно

Храните ваши API токены в безопасности и никогда не передавайте их в клиентском коде.

Получение API токена

Шаг 1: Войдите в аккаунт

Войдите в свой аккаунт WebAsk и перейдите в раздел настроек.

Шаг 2: Создайте API токен

В разделе "API токены" нажмите "Создать новый токен" и укажите название для токена.

Пример названия токена:

Мое приложение - Production

Шаг 3: Скопируйте токен

После создания токена скопируйте его и сохраните в безопасном месте. Токен больше не будет показан в интерфейсе.

Формат токена:

wa_1234567890abcdef1234567890abcdef

Использование токена

Добавьте токен в заголовок Authorization всех запросов к API:

GET /api/service/quiz
curl -X GET https://api.webask.io/api/service/quiz \
  -H "Authorization: Bearer wa_1234567890abcdef1234567890abcdef" \
  -H "Content-Type: application/json"

JavaScript (fetch)

fetch('https://api.webask.io/api/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/service/quiz', headers=headers)
data = response.json()

PHP (cURL)

$url = 'https://api.webask.io/api/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/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 Превышен лимит запросов Уменьшите частоту запросов или обновите тарифный план