Documentation
¶
Index ¶
- func DeriveKey(secret, purpose string) []byte
- type EmailConfirmClaims
- type EmailConfirmToken
- type ResetToken
- type SessionClaims
- type SessionToken
- type Tokens
- func (t *Tokens) IssueEmailConfirm(userID, email string) (EmailConfirmToken, error)
- func (t *Tokens) IssueReset(userID string) (ResetToken, error)
- func (t *Tokens) IssueSession(c SessionClaims) (SessionToken, error)
- func (t *Tokens) VerifyEmailConfirm(tok EmailConfirmToken) (*EmailConfirmClaims, error)
- func (t *Tokens) VerifyReset(tok ResetToken) (string, error)
- func (t *Tokens) VerifySession(tok SessionToken) (*SessionClaims, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
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 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 ¶
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)
Click to show internal directories.
Click to hide internal directories.