token

package
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 23, 2026 License: MIT Imports: 5 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DeriveKey

func DeriveKey(secret, purpose string) []byte

DeriveKey returns a purpose-specific subkey so a single secret is never used directly for more than one cryptographic purpose.

Types

type EmailConfirmClaims

type EmailConfirmClaims struct {
	UserID  string `json:"user_id"`
	Email   string `json:"email"`
	Purpose string `json:"purpose"`
	jwt.RegisteredClaims
}

type EmailConfirmToken

type EmailConfirmToken string

type ResetToken

type ResetToken string

type SessionClaims

type SessionClaims struct {
	Email       string `json:"email"`
	DisplayName string `json:"display_name,omitempty"`
	Theme       string `json:"theme,omitempty"`
	Purpose     string `json:"purpose"`
	jwt.RegisteredClaims
}

type SessionToken

type SessionToken string

Opaque token types make cross-purpose use a compile error.

type Tokens

type Tokens struct {
	// contains filtered or unexported fields
}

Tokens issues and verifies purpose-typed tokens. Each purpose is signed with its own HMAC-SHA256 subkey derived from a single secret, so a token issued for one purpose can never be verified as another.

func New

func New(secret string) *Tokens

New derives one subkey per purpose from secret. The raw secret is never used to sign a token directly.

func (*Tokens) IssueEmailConfirm

func (t *Tokens) IssueEmailConfirm(userID, email string) (EmailConfirmToken, error)

func (*Tokens) IssueReset

func (t *Tokens) IssueReset(userID string) (ResetToken, error)

func (*Tokens) IssueSession

func (t *Tokens) IssueSession(c SessionClaims) (SessionToken, error)

func (*Tokens) VerifyEmailConfirm

func (t *Tokens) VerifyEmailConfirm(tok EmailConfirmToken) (*EmailConfirmClaims, error)

func (*Tokens) VerifyReset

func (t *Tokens) VerifyReset(tok ResetToken) (string, error)

func (*Tokens) VerifySession

func (t *Tokens) VerifySession(tok SessionToken) (*SessionClaims, error)

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL