Skip to content

Типы и константы

NumericDate

go
type NumericDate struct {
    time.Time
}

Числовое значение даты JWT (Unix-временная метка). Допустимый диапазон от 0 до 253402300799 (9999-12-31 23:59:59 UTC).

struct

Методы

МетодСигнатураОписание
MarshalJSONfunc (date *NumericDate) MarshalJSON() ([]byte, error)Сериализует в JSON-число Unix-временной метки; для нулевого времени или при выходе за допустимый диапазон возвращает null
UnmarshalJSONfunc (date *NumericDate) UnmarshalJSON(b []byte) errorПарсит Unix-временную метку из JSON-числа или строки; отклоняет отрицательные значения и значения вне допустимого диапазона

StringOrSlice

go
type StringOrSlice []string

Хранит []string, который десериализуется как из JSON-строки, так и из JSON-массива; срез из одного элемента сериализуется как JSON-строка, а из нескольких — как массив, согласно RFC 7519 §4.1.3.

type

Методы

МетодСигнатураОписание
MarshalJSONfunc (s StringOrSlice) MarshalJSON() ([]byte, error)Срез из одного элемента сериализуется как JSON-строка, из нескольких — как массив (RFC 7519 §4.1.3)
UnmarshalJSONfunc (s *StringOrSlice) UnmarshalJSON(b []byte) errorПарсит из JSON-строки или массива

SigningMethod

go
type SigningMethod string

Тип алгоритма подписи.

type

ValidationError

go
type ValidationError struct {
    Field   string
    Message string
    Err     error
}

Ошибка неудачной валидации на уровне поля.

struct

Методы

МетодСигнатураОписание
Errorfunc (e *ValidationError) Error() stringСообщение об ошибке
Unwrapfunc (e *ValidationError) Unwrap() errorРаспаковывает внутреннюю ошибку

RateLimiter

go
type RateLimiter struct { ... }

Ограничитель скорости на основе алгоритма корзины токенов, реализует интерфейс RateLimitProvider.

struct

Методы

МетодСигнатураОписание
Allowfunc (rl *RateLimiter) Allow(key string) boolПроверяет один запрос
AllowNfunc (rl *RateLimiter) AllowN(key string, n int) boolПроверяет n запросов
Resetfunc (rl *RateLimiter) Reset(key string)Сбрасывает указанный key
Closefunc (rl *RateLimiter) Close()Освобождает ресурсы

SystemClock

go
type SystemClock struct{}

Системные часы, реализация ClockProvider по умолчанию.

struct

Методы

МетодСигнатураОписание
Nowfunc (SystemClock) Now() time.TimeВозвращает текущее системное время

FixedClock

go
type FixedClock struct {
    T time.Time
}

Часы с фиксированным временем для тестирования.

struct

Поля

ПолеТипОписание
Ttime.TimeФиксированное значение времени

Методы

МетодСигнатураОписание
Nowfunc (c FixedClock) Now() time.TimeВозвращает фиксированное время

Константы алгоритмов подписи

go
const (
    SigningMethodHS256 SigningMethod = "HS256"
    SigningMethodHS384 SigningMethod = "HS384"
    SigningMethodHS512 SigningMethod = "HS512"

    SigningMethodRS256 SigningMethod = "RS256"
    SigningMethodRS384 SigningMethod = "RS384"
    SigningMethodRS512 SigningMethod = "RS512"

    SigningMethodPS256 SigningMethod = "PS256"
    SigningMethodPS384 SigningMethod = "PS384"
    SigningMethodPS512 SigningMethod = "PS512"

    SigningMethodES256 SigningMethod = "ES256"
    SigningMethodES384 SigningMethod = "ES384"
    SigningMethodES512 SigningMethod = "ES512"
)
КонстантаЗначениеАлгоритмТип
SigningMethodHS256"HS256"HMAC-SHA256Симметричный
SigningMethodHS384"HS384"HMAC-SHA384Симметричный
SigningMethodHS512"HS512"HMAC-SHA512Симметричный
SigningMethodRS256"RS256"RSA-SHA256Асимметричный
SigningMethodRS384"RS384"RSA-SHA384Асимметричный
SigningMethodRS512"RS512"RSA-SHA512Асимметричный
SigningMethodPS256"PS256"RSA-PSS-SHA256Асимметричный
SigningMethodPS384"PS384"RSA-PSS-SHA384Асимметричный
SigningMethodPS512"PS512"RSA-PSS-SHA512Асимметричный
SigningMethodES256"ES256"ECDSA-SHA256Асимметричный
SigningMethodES384"ES384"ECDSA-SHA384Асимметричный
SigningMethodES512"ES512"ECDSA-SHA512Асимметричный

Константы типа токена

go
const (
    TokenTypeAccess  = "access"
    TokenTypeRefresh = "refresh"
)

Константы типа токена, записываемые в поле RegisteredClaims.TokenType.

КонстантаЗначениеОписание
TokenTypeAccess"access"Токен доступа
TokenTypeRefresh"refresh"Токен обновления