我正在尝试使用 golang 中的 jwt-go 包生成带有 rsa 密钥的令牌。
这里有一个博客解释了如何做到这一点,但该代码将始终验证所有令牌,因为使用存储在服务器中的公钥而不是从令牌中获取它。您如何将完整的公钥放入令牌中?我正在尝试这个:
var secretKey, _ = rsa.GenerateKey(rand.Reader, 1024)
token := jwt.New(jwt.SigningMethodRS256)
token.Claims["username"] = "victorsamuelmd"
token.Claims["N"] = secretKey.PublicKey.N
token.Claims["E"] = secretKey.PublicKey.E
tokenString, err := token.SignedString(secretKey)
nt, err := jwt.Parse(tokenString, func(t *jwt.Token) (interface{}, error) {
// here I need to recover the public key from the token
// but N is a big.Int and the token stores N as int64
})
对不起我的英语。谢谢。