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)Unix タイムスタンプの JSON 数値にシリアライズ。ゼロ時刻または有効範囲外の場合は null を返す
UnmarshalJSONfunc (date *NumericDate) UnmarshalJSON(b []byte) errorJSON 数値または文字列から Unix タイムスタンプをパース。負の値と有効範囲外の値を拒否

StringOrSlice

go
type StringOrSlice []string

JSON 文字列または JSON 配列のいずれかからデシリアライズ可能な []string を保持する型。要素数 1 のスライスは JSON 文字列として、複数要素のスライスは配列としてマーシャルされ、RFC 7519 §4.1.3 に準拠する。

type

メソッド

メソッドシグネチャ説明
MarshalJSONfunc (s StringOrSlice) MarshalJSON() ([]byte, error)要素数 1 のスライスは JSON 文字列として、複数要素は配列としてマーシャル(RFC 7519 §4.1.3)
UnmarshalJSONfunc (s *StringOrSlice) UnmarshalJSON(b []byte) errorJSON 文字列または配列からパース

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) booln 回のリクエストをチェック
Resetfunc (rl *RateLimiter) Reset(key string)指定したキーをリセット
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"リフレッシュトークン