Sobes.tech
Back to questions
Middle+
4

Что такое токены для авторизации, какие бывают?

Companies where asked
Магнум

Answer from AI

sobes.tech AI

Токены для авторизации — это цифровые маркеры, которые подтверждают права пользователя или клиента на доступ к ресурсам. Они позволяют серверу не хранить состояние сессии, а проверять права по токену.

Основные виды токенов:

  • JWT (JSON Web Token) — самодостаточный токен с зашифрованной или подписанной информацией о пользователе и правах. Часто используется в REST API.
  • OAuth токены — используются в протоколе OAuth 2.0, включают access token (для доступа) и refresh token (для обновления access token).
  • Session tokens — идентификаторы сессии, которые сервер хранит в памяти или базе, а клиент передаёт в cookie.

Пример использования JWT в Go:

import (
    "github.com/dgrijalva/jwt-go"
    "time"
)

func GenerateJWT(secret []byte) (string, error) {
    claims := jwt.StandardClaims{
        ExpiresAt: time.Now().Add(time.Hour).Unix(),
        Issuer:    "myapp",
    }
    token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims)
    return token.SignedString(secret)
}