Функции пакета
New
go
func New(cfg Config) (*Processor, error)Создаёт новый JWT Processor. Используйте DefaultConfig() для получения конфигурации по умолчанию, измените необходимые поля и передайте в функцию.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
cfg | Config | Конфигурация |
Возвращаемые значения
| Возврат | Тип | Описание |
|---|---|---|
processor | *Processor | JWT-обработчик |
err | error | Ошибка при неудачной валидации конфигурации |
Пример
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Возвращает конфигурацию с разумными значениями по умолчанию.
Возвращаемые значения
| Возврат | Тип | Описание |
|---|---|---|
config | Config | Конфигурация по умолчанию |
Значения по умолчанию
| Поле | Значение по умолчанию |
|---|---|
AccessTokenTTL | 15 * time.Minute |
RefreshTokenTTL | 7 * 24 * time.Hour |
Issuer | "jwt-service" |
SigningMethod | SigningMethodHS256 |
RateLimitRate | 100 |
RateLimitWindow | time.Minute |
Blacklist | DefaultBlacklistConfig() |
Пример
go
cfg := jwt.DefaultConfig()
cfg.SecretKey = "hmac-key-that-has-at-least-32-bytes!"
// Измените остальные поля при необходимостиDefaultBlacklistConfig
go
func DefaultBlacklistConfig() BlacklistConfigВозвращает конфигурацию чёрного списка с разумными значениями по умолчанию.
Возвращаемые значения
| Возврат | Тип | Описание |
|---|---|---|
config | BlacklistConfig | Конфигурация чёрного списка по умолчанию |
Значения по умолчанию
| Поле | Значение по умолчанию |
|---|---|
CleanupInterval | 5 * time.Minute |
MaxSize | 100000 |
EnableAutoCleanup | true |
NewNumericDate
go
func NewNumericDate(t time.Time) NumericDateСоздаёт NumericDate из time.Time.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
t | time.Time | Значение времени |
Возвращаемые значения
| Возврат | Тип | Описание |
|---|---|---|
date | NumericDate | Числовая дата JWT |
NewRateLimiter
go
func NewRateLimiter(maxRate int, window time.Duration) *RateLimiterСоздаёт ограничитель скорости на основе алгоритма корзины токенов.
Параметры
| Параметр | Тип | Описание |
|---|---|---|
maxRate | int | Максимальное количество запросов в окне (при ≤0 по умолчанию 100) |
window | time.Duration | Временное окно (при ≤0 по умолчанию 1 минута) |
Возвращаемые значения
| Возврат | Тип | Описание |
|---|---|---|
limiter | *RateLimiter | Экземпляр ограничителя |