58 lines
1.4 KiB
Go
58 lines
1.4 KiB
Go
// Package gen allows generating of example tokens and claims.
|
|
//
|
|
// go run ./internal/testutil/gen
|
|
package main
|
|
|
|
import (
|
|
"encoding/json"
|
|
"fmt"
|
|
"os"
|
|
|
|
tu "git.christmann.info/LARA/zitadel-oidc/v3/internal/testutil"
|
|
"git.christmann.info/LARA/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)
|
|
}
|