...
1 package jwt_test
2
3 import (
4 "fmt"
5 "log"
6 "os"
7 "time"
8
9 "github.com/golang-jwt/jwt/v5"
10 )
11
12
13
14
15 var hmacSampleSecret []byte
16
17 func init() {
18
19 if keyData, e := os.ReadFile("test/hmacTestKey"); e == nil {
20 hmacSampleSecret = keyData
21 } else {
22 panic(e)
23 }
24 }
25
26
27 func ExampleNew_hmac() {
28
29
30 token := jwt.NewWithClaims(jwt.SigningMethodHS256, jwt.MapClaims{
31 "foo": "bar",
32 "nbf": time.Date(2015, 10, 10, 12, 0, 0, 0, time.UTC).Unix(),
33 })
34
35
36 tokenString, err := token.SignedString(hmacSampleSecret)
37
38 fmt.Println(tokenString, err)
39
40 }
41
42
43 func ExampleParse_hmac() {
44
45 tokenString := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJmb28iOiJiYXIiLCJuYmYiOjE0NDQ0Nzg0MDB9.u1riaD1rW97opCoAuRCTy4w58Br-Zk-bh7vLiRIsrpU"
46
47
48
49
50
51 token, err := jwt.Parse(tokenString, func(token *jwt.Token) (interface{}, error) {
52
53 if _, ok := token.Method.(*jwt.SigningMethodHMAC); !ok {
54 return nil, fmt.Errorf("Unexpected signing method: %v", token.Header["alg"])
55 }
56
57
58 return hmacSampleSecret, nil
59 })
60 if err != nil {
61 log.Fatal(err)
62 }
63
64 if claims, ok := token.Claims.(jwt.MapClaims); ok {
65 fmt.Println(claims["foo"], claims["nbf"])
66 } else {
67 fmt.Println(err)
68 }
69
70
71 }
72
View as plain text