Skip to content

Функции пакета

New

go
func New(cfg Config) (*Processor, error)

Создаёт новый JWT Processor. Используйте DefaultConfig() для получения конфигурации по умолчанию, измените необходимые поля и передайте в функцию.

Параметры

ПараметрТипОписание
cfgConfigКонфигурация

Возвращаемые значения

ВозвратТипОписание
processor*ProcessorJWT-обработчик
errerrorОшибка при неудачной валидации конфигурации

Пример

go
package main

import (
    "fmt"

    "github.com/cybergodev/jwt"
)

func main() {
    cfg := jwt.DefaultConfig()
    cfg.SecretKey = "hmac-key-that-has-at-least-32-bytes!"

    processor, err := jwt.New(cfg)
    if err != nil {
        panic(err)
    }
    defer processor.Close()

    fmt.Println("Processor created successfully")
}

Ошибки

ОшибкаУсловие возникновения
ErrInvalidConfigНедопустимая конфигурация
ErrInvalidSecretKeyКлюч отсутствует, менее 32 байт, слабый ключ, неверный тип или несоответствие кривой ECDSA
ErrInvalidSigningMethodНеподдерживаемый алгоритм подписи

DefaultConfig

go
func DefaultConfig() Config

Возвращает конфигурацию с разумными значениями по умолчанию.

Возвращаемые значения

ВозвратТипОписание
configConfigКонфигурация по умолчанию

Значения по умолчанию

ПолеЗначение по умолчанию
AccessTokenTTL15 * time.Minute
RefreshTokenTTL7 * 24 * time.Hour
Issuer"jwt-service"
SigningMethodSigningMethodHS256
RateLimitRate100
RateLimitWindowtime.Minute
BlacklistDefaultBlacklistConfig()

Пример

go
cfg := jwt.DefaultConfig()
cfg.SecretKey = "hmac-key-that-has-at-least-32-bytes!"
// Измените остальные поля при необходимости

DefaultBlacklistConfig

go
func DefaultBlacklistConfig() BlacklistConfig

Возвращает конфигурацию чёрного списка с разумными значениями по умолчанию.

Возвращаемые значения

ВозвратТипОписание
configBlacklistConfigКонфигурация чёрного списка по умолчанию

Значения по умолчанию

ПолеЗначение по умолчанию
CleanupInterval5 * time.Minute
MaxSize100000
EnableAutoCleanuptrue

NewNumericDate

go
func NewNumericDate(t time.Time) NumericDate

Создаёт NumericDate из time.Time.

Параметры

ПараметрТипОписание
ttime.TimeЗначение времени

Возвращаемые значения

ВозвратТипОписание
dateNumericDateЧисловая дата JWT

NewRateLimiter

go
func NewRateLimiter(maxRate int, window time.Duration) *RateLimiter

Создаёт ограничитель скорости на основе алгоритма корзины токенов.

Параметры

ПараметрТипОписание
maxRateintМаксимальное количество запросов в окне (при ≤0 по умолчанию 100)
windowtime.DurationВременное окно (при ≤0 по умолчанию 1 минута)

Возвращаемые значения

ВозвратТипОписание
limiter*RateLimiterЭкземпляр ограничителя