File: gen.go

package info (click to toggle)
golang-github-zitadel-oidc 3.44.0-1
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 1,520 kB
  • sloc: makefile: 5
file content (58 lines) | stat: -rw-r--r-- 1,378 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
// Package gen allows generating of example tokens and claims.
//
//	go run ./internal/testutil/gen
package main

import (
	"encoding/json"
	"fmt"
	"os"

	tu "github.com/zitadel/oidc/v3/internal/testutil"
	"github.com/zitadel/oidc/v3/pkg/oidc"
)

var custom = map[string]any{
	"foo": "Hello, World!",
	"bar": struct {
		Count int      `json:"count,omitempty"`
		Tags  []string `json:"tags,omitempty"`
	}{
		Count: 22,
		Tags:  []string{"some", "tags"},
	},
}

func main() {
	enc := json.NewEncoder(os.Stdout)
	enc.SetIndent("", "    ")

	accessToken, atClaims := tu.NewAccessTokenCustom(
		tu.ValidIssuer, tu.ValidSubject, tu.ValidAudience,
		tu.ValidExpiration.AddDate(99, 0, 0), tu.ValidJWTID,
		tu.ValidClientID, tu.ValidSkew, custom,
	)
	atHash, err := oidc.ClaimHash(accessToken, tu.SignatureAlgorithm)
	if err != nil {
		panic(err)
	}

	idToken, idClaims := tu.NewIDTokenCustom(
		tu.ValidIssuer, tu.ValidSubject, tu.ValidAudience,
		tu.ValidExpiration.AddDate(99, 0, 0), tu.ValidAuthTime,
		tu.ValidNonce, tu.ValidACR, tu.ValidAMR, tu.ValidClientID,
		tu.ValidSkew, atHash, custom,
	)

	fmt.Println("access token claims:")
	if err := enc.Encode(atClaims); err != nil {
		panic(err)
	}
	fmt.Printf("access token:\n%s\n", accessToken)

	fmt.Println("ID token claims:")
	if err := enc.Encode(idClaims); err != nil {
		panic(err)
	}
	fmt.Printf("ID token:\n%s\n", idToken)
}