Ответ
В веб-разработке есть несколько типов токенов:
- Access Token – короткоживущий токен для доступа к API. Пример:
const accessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
-
Refresh Token – долгоживущий токен для обновления access token'а. Хранится безопасно (httpOnly cookie).
-
CSRF Token – защита от межсайтовой подделки запросов. Добавляется в формы:
<input type="hidden" name="_csrf" value="токен">
-
JWT (JSON Web Token) – стандарт для передачи данных между сторонами в зашифрованном виде. Состоит из header.payload.signature.
-
OAuth Token – используется в авторизации через соцсети (Google, Facebook и т.д.).
-
Session Token – идентификатор сессии, обычно хранится в cookie.
-
API Key – постоянный ключ для доступа к API (менее безопасен, чем OAuth).
Ответ 18+ 🔞
Да ты посмотри, какая тут токенов всяких развелось — как блох на бродячей собаке! Ну ладно, сейчас разберёмся, кто из них для чего, а то голова кругом идёт.
Access Token — это, грубо говоря, пропускная карточка. Коротенькая такая, живёт недолго, чтобы если её у тебя спиздят, то недолго радовались. Ты с ней к API стучишься: «Пусти, я свой!». Примерно так он выглядит, этот пропуск:
const accessToken = 'eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...';
Refresh Token — а это уже, блядь, скелет в шкафу. Долгоживущий такой гад. Лежит себе тихо в безопасном месте (в этой твоей httpOnly куке), и когда основной пропуск (access token) протух, как вчерашний суп, ты с этим скелетом идешь и выпрашиваешь новый. Хранить его надо как зеницу ока, а то охуеешь потом.
CSRF Token — вот это, сука, классика! Защита от того, чтобы какие-то левые уебки с других сайтов от твоего имени запросы слали. Кидаешь его в форму, как скрытый инпут, и спишь спокойно.
<input type="hidden" name="_csrf" value="токен">
JWT (JSON Web Token) — это уже целая пьеса в трёх частях: header.payload.signature. Туда можно запихнуть какие-то данные о пользователе, и они будут зашифрованы. Главное — не пихать туда пароли или номер карты, а то будет тебе ебаный стыд.
OAuth Token — это когда ты заходишь куда-то через «Войти через Гугл/Фейсбук». Там эти гиганты тебе выдают свой пропуск, и ты с ним уже ходишь по нашему сайту. Удобно, не надо запоминать сто пятьсот паролей.
Session Token — старый-добрый дедушка. Просто идентификатор сессии, который обычно в куке сидит. Сервер по нему тебя помнит. Без изысков, но работает.
API Key — это как ключ от гаража, который ты всем подряд раздаёшь. Постоянный, не меняется. Удобно, но если утечёт — пиши пропало. Менее безопасно, чем тот же OAuth, поэтому для серьёзных дел не очень.
Вот и весь зоопарк, ёпта. Выбирай, что для твоей задачи подходит, и не перепутай, а то получится пиздец, а не авторизация.