Я пытаюсь сгенерировать токен с ключом rsa, используя пакет jwt-go в golang.
Здесь есть блог, объясняющий, как сделать это, но этот код всегда будет проверять все токены, потому что он использует открытый ключ, хранящийся на сервере, и не получает его из токена. Как поместить полный открытый ключ в токен? Я пытался это:
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
})
Извините за мой английский. Спасибо.