Golang Go语言中 有大神用过 jwt-go 么,我用 rsa256 签名好像不对,以前没用过,求助
按照网上的教程,我试了一下 jwt-go 用 rsa256 算法签名,总报错,说调用 SignedString ()时总会出错,说“ key is invalid ”。。。 代码如下: package main
import (
jwt "github.com/dgrijalva/jwt-go"
"log"
"io/ioutil"
)
func main(){
privKeyPath := “/Users/zhangzhen11/gocode/src/jwt/keys/app.rsa”
//pubKeyPath := “keys/app.rsa.pub”
var err error
var (
signKey []byte
//verifyKey []byte
)
signKey, err = ioutil.ReadFile(privKeyPath)
if err !=nil{
log.Printf(“readfile:%v\n”, err)
return
}
claims := &jwt.StandardClaims{
Issuer: “test”,
ExpiresAt: 15000,
}
t := jwt.NewWithClaims(jwt.SigningMethodRS256, claims)
token , err := t.SignedString(signKey)
if err != nil{
log.Printf(“sign:%v\n”, err)
return
}
log.Printf("%v\n", token)
}
输出结果: 2017/08/01 11:40:44 sign:key is invalid
key 应该是没问题的 我可以打印出来 key 的值,是我哪个 api 用错了么
Golang Go语言中 有大神用过 jwt-go 么,我用 rsa256 签名好像不对,以前没用过,求助
更多关于Golang Go语言中 有大神用过 jwt-go 么,我用 rsa256 签名好像不对,以前没用过,求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
附 openssl genrsa -out app.rsa 1024
更多关于Golang Go语言中 有大神用过 jwt-go 么,我用 rsa256 签名好像不对,以前没用过,求助的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html
你的 signKey 获取的有问题,应该这样go<br>signBytes, err := ioutil.ReadFile(privKeyPath)<br>signKey, err = jwt.ParseRSAPrivateKeyFromPEM(signBytes)<br>
在Go语言中使用jwt-go库进行RSA256签名时,如果遇到问题,可以参考以下建议进行排查和解决:
- 确保依赖正确:首先,确保你使用的jwt-go库是最新版本,或者至少是一个稳定版本。由于jwt-go原仓库已归档,建议使用新维护的库,如github.com/golang-jwt/jwt,并在go.mod文件中指定正确的版本号。
- 检查密钥对:确认你使用的私钥和公钥是正确配对的,并且私钥是用于签名,公钥是用于验证。生成密钥对时,可以使用openssl等工具。
- 验证签名算法:在生成和解析JWT时,确保使用的签名算法是RSA256。在解析JWT时,还需要检查Token的Header中的"alg"字段,确保它与你期望的签名方法匹配。
- 检查签名过程:确认签名过程中没有遗漏或错误的步骤。例如,签名内容需要正确格式化,私钥需要正确解析等。
- 参考示例代码:查看jwt-go库的官方示例代码或社区提供的示例代码,以确保你的实现方式是正确的。
如果以上步骤都无法解决问题,建议详细检查错误信息,或者在jwt-go的社区论坛、GitHub等平台上寻求帮助。