首页 > 解决方案 > 我如何在 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
}

谁能帮我获取发行人或页脚或任何其他数据。提前致谢。

标签: gogo-fiberpaseto

解决方案


问题解决了。我正在使用公共模式,我的令牌就像“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”函数的发行者。谢谢你。


推荐阅读