← Назад к вопросам
Какие запросы нужны для авторизации?
1.0 Junior🔥 111 комментариев
#Браузер и сетевые технологии
Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI3 апр. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Основные типы запросов авторизации
Авторизация — процесс проверки прав пользователя после его идентификации. Для реализации авторизации используются несколько типов HTTP запросов с различными методами и заголовками.
1. Bearer Token (JWT) авторизация
Это самый популярный современный подход в веб-приложениях. Токен передается в заголовке Authorization.
// Запрос с Bearer токеном
fetch('/api/v1/protected-resource', {
method: 'GET',
headers: {
'Authorization': 'Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...',
'Content-Type': 'application/json'
}
});
// Интерцептор для добавления токена ко всем запросам
const api = axios.create();
api.interceptors.request.use(config => {
const token = localStorage.getItem('access_token');
if (token) {
config.headers.Authorization = `Bearer ${token}`;
}
return config;
});
2. Запрос для получения токена (Login)
// POST запрос для входа
const loginResponse = await fetch('/api/v1/auth/login', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
email: 'user@example.com',
password: 'password123'
})
});
const { access_token, refresh_token, expires_in } = await loginResponse.json();
localStorage.setItem('access_token', access_token);
localStorage.setItem('refresh_token', refresh_token);
3. Refresh Token запрос
Когда access_token истекает, используется refresh_token для получения нового токена без повторного входа:
// Запрос обновления токена
const refreshResponse = await fetch('/api/v1/auth/refresh', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
refresh_token: localStorage.getItem('refresh_token')
})
});
const { access_token } = await refreshResponse.json();
localStorage.setItem('access_token', access_token);
4. Проверка аутентификации (Me endpoint)
// Запрос текущего пользователя
const meResponse = await fetch('/api/v1/auth/me', {
method: 'GET',
headers: {
'Authorization': `Bearer ${localStorage.getItem('access_token')}`
}
});
const currentUser = await meResponse.json();
5. Logout запрос
// Запрос выхода
await fetch('/api/v1/auth/logout', {
method: 'POST',
headers: {
'Authorization': `Bearer ${localStorage.getItem('access_token')}`
}
});
// Очистка локального хранилища
localStorage.removeItem('access_token');
localStorage.removeItem('refresh_token');
6. OAuth 2.0 авторизация
// Запрос на получение авторизационного кода
const authUrl = new URL('https://oauth-provider.com/authorize');
authUrl.searchParams.append('client_id', 'YOUR_CLIENT_ID');
authUrl.searchParams.append('redirect_uri', window.location.origin);
authUrl.searchParams.append('response_type', 'code');
authUrl.searchParams.append('scope', 'email profile');
window.location.href = authUrl.toString();
// После редиректа, обмен кода на токен
const tokenResponse = await fetch('/api/v1/auth/oauth/callback', {
method: 'POST',
body: JSON.stringify({ code })
});
Заголовки авторизации
- Authorization — основной заголовок для передачи учетных данных (Bearer, Basic, Digest)
- X-API-Key — для API ключей
- Cookie — для сессионной авторизации (автоматически отправляется браузером)
Выводы
Для типичного веб-приложения нужны минимум 3 запроса: логин (получение токена), рефреш (обновление токена) и check/me (проверка текущего пользователя). Bearer token авторизация — стандарт для REST API с JWT.