С какими системами авторизации работал

Ответ

Работал с JWT, OAuth 2.0 (Google, Facebook, GitHub), Basic Auth и Session-based аутентификацией.

JWT (JSON Web Tokens):

// Отправка токена в заголовке
fetch('/api/data', {
  headers: { 'Authorization': `Bearer ${token}` }
});

OAuth 2.0 (на примере Google):
Использовал библиотеки типа react-oauth/google или ручную реализацию через window.open для получения access_token.

Session-based:
Работал с куками (HttpOnly, Secure) и серверными сессиями (например, Express + express-session).

Также знаком с OpenID Connect и реализовывал кастомные решения для API с HMAC-подписью запросов.

Ответ 18+ 🔞

А, ну это ж моя любимая тема — про то, как пользователей впускать, но не слишком, чтобы не набедокурили. Работал со всем этим зоопарком, да.

JWT, эти ваши JSON Web Tokens, — ну, вроде удобно, токен как билетик на руках. Только потом начинаешь думать: а как его отозвать-то, если что? Ага, чёрт, список недействительных заведи, блядь. Или срок жизни короткий делай, как у майского жука. Вот пример, как его обычно тычут в заголовок:

// Отправка токена в заголовке
fetch('/api/data', {
  headers: { 'Authorization': `Bearer ${token}` }
});

OAuth 2.0 — это вообще отдельный цирк, особенно когда подключаешь Гугл, Фейсбук или Гитхаб. Библиотеки всякие типа react-oauth/google — это, конечно, святое, но иногда приходится и ручками через window.open этот самый access_token выковыривать. Чувствуешь себя таким хитрожопым интегратором, блядь.

Session-based аутентификация — старый добрый дедовский способ. Куки, HttpOnly, Secure, серверные сессии в Express. Надёжно, как танк, но иногда такое ощущение, что возишь с собой целый сундук, а не просто ключ.

А ещё баловался с OpenID Connect — это когда OAuth 2.0 решил, что ему мало просто доступ дать, а надо ещё и личность подтвердить, ёпта. И кастомные решения для API делал, где каждый запрос надо было подписывать HMAC-подписью. Это когда ты уже настолько всех подозреваешь, что без криптографической подписи даже «привет» не скажешь. Волнение ебать, терпения ноль, пока всё отладишь.

Короче, аутентификация — это как выбор замка на дверь: можно на щеколду, а можно на сейф с биометрией, но в итоге всё равно кто-нибудь забудет пароль от почты.