Documentation
¶
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
Functions ¶
Types ¶
type Audience ¶
type Audience []string
Audience RFC 7519.
func (Audience) MarshalJSON ¶
func (*Audience) UnmarshalJSON ¶
type Payload ¶
type Payload struct {
PrivateKey ed25519.PrivateKey `json:"-"`
PublicKey ed25519.PublicKey `json:"-"`
Validator []Validator `json:"-"`
Issuer string `json:"iss,omitempty"`
Subject string `json:"sub,omitempty"`
Audience Audience `json:"aud,omitempty"`
ExpirationTime *Time `json:"exp,omitempty"`
NotBefore *Time `json:"nbf,omitempty"`
IssuedAt *Time `json:"iat,omitempty"`
JWTID string `json:"jti,omitempty"`
}
Example ¶
seed, err := base64.RawURLEncoding.DecodeString("9ZmhLw2OOCeTXHj02b6LI7Irl7Hw97msGd7o_jhiDkU")
if err != nil {
panic(err)
}
pk := ed25519.NewKeyFromSeed(seed)
p1 := Payload{
PrivateKey: pk,
Subject: "sub",
}
j, err := json.Marshal(p1)
if err != nil {
fmt.Println(err)
}
// fmt.Println(string(j))
p2 := Payload{
PublicKey: pk.Public().(ed25519.PublicKey),
Validator: []Validator{ValidSubject("sub")},
}
err = json.Unmarshal(j, &p2)
if err != nil {
fmt.Println(err)
}
fmt.Printf("%s", p2.Subject)
Output: sub
func (Payload) MarshalJSON ¶
func (*Payload) UnmarshalJSON ¶
type Validator ¶
func ValidAudience ¶
func ValidExpirationTime ¶
func ValidIssuedAt ¶
func ValidIssuer ¶
func ValidNotBefore ¶
func ValidSubject ¶
Click to show internal directories.
Click to hide internal directories.