我试图弄清楚如何使用以下 JWT 库在 JWT 中编码地图:
https://github.com/dgrijalva/jwt-go
我需要能够生成的 JWT 具有以下有效负载:
{
"iss": "id.example.com",
"aud": "notify",
"iat": 1602681257,
"exp": 1602682157,
"payload": {
"data": {
"name": "bob",
"id": "123456",
},
"type": "CUSTOM"
},
"env": "integration",
}
标准声明很容易产生,但我无法从文档中弄清楚如何在“有效负载”下生成数据,因为它不是一个单一的值,而是一个地图。我目前拥有的测试代码如下:
package main
import (
"crypto/ecdsa"
"crypto/elliptic"
"crypto/rand"
"fmt"
"github.com/dgrijalva/jwt-go"
"time"
)
func main() {
key, _ := ecdsa.GenerateKey(elliptic.P256(), rand.Reader)
timestamp := time.Now().Unix()
claims := jwt.StandardClaims{
Audience: "notify",
ExpiresAt: timestamp + 60,
Issuer: "id.example.com",
IssuedAt: timestamp,
}
token := jwt.NewWithClaims(jwt.SigningMethodES256, claims)
token.Header["kid"] = "foobar"
tokenString, _ := token.SignedString(key)
fmt.Println(tokenString)
}
如何在 JWT 中生成其余声明?
江户川乱折腾
白猪掌柜的
相关分类