go - 我如何在 GO paseto v2(public) 中获取发行者或页脚或任何其他数据
问题描述
func GetToken(user int) (string, error) {
v2 := paseto.NewV2()
b, _ := hex.DecodeString(PrivateKey)
privateKey := ed25519.PrivateKey(b)
jsonToken := paseto.JSONToken{
Expiration: time.Now().Add(24 * time.Hour),
Issuer: strconv.Itoa(user),
IssuedAt: time.Now(),
}
footer := strconv.Itoa(user)
token, err := v2.Sign(privateKey, jsonToken, footer)
return token, err
}
我有一个代码用于生成带有附加数据(如发行者或页脚)的令牌。但是在令牌验证令牌之后,我找不到任何方法来获取该信息。
func VerifyToken(token string) bool {
v2 := paseto.NewV2()
b, _ := hex.DecodeString(PublicKey)
publicKEY := ed25519.PublicKey(b)
var newJsonToken paseto.JSONToken
var newFooter string
err := v2.Verify(token, publicKEY, &newJsonToken, &newFooter)
return err == nil
}
谁能帮我获取发行人或页脚或任何其他数据。提前致谢。
解决方案
问题解决了。我正在使用公共模式,我的令牌就像“v2.public.$$$$$...”。在我验证了我的令牌后,我从“newJsonToken”获得了所有数据,如发行者
func VerifyToken(token string) bool {
v2 := paseto.NewV2()
b, _ := hex.DecodeString(PublicKey)
publicKEY := ed25519.PublicKey(b)
var newJsonToken paseto.JSONToken
var newFooter string
err := v2.Verify(token, publicKEY, &newJsonToken, &newFooter)
fmt.Println("Json token: ",newJsonToken.Issuer)
return err == nil
}
在这里,我得到了附加到“GetToken”函数的发行者。谢谢你。
推荐阅读
- python - 在 tkinter 中调整图像大小
- javascript - Dropzone.js 添加其他数据时不发送文件
- java - JDK 8 中的正则表达式中的错误?
- three.js - 如何创建多色噪波着色器
- python - 用于回归的 Sklearn 指标因评估方法而异。如何获得相似的分数
- cmder - 我无法在终端中创建全局 gitignore。touch ~/.gitignore 给出错误
- javascript - 在带有 webpacker 的 rails 中使用的 Javascript 不提供任何 console.log 输出
- vba - vba Word如何获取表格中的句子
- android-studio - 在颤振中使用 setState() 的替代方法是什么?
- laravel - 在 laravel 中使用 memcached。这是正常的应用程序行为吗?