按照网上的教程,我试了一下 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 用错了么
1
a1020773312 OP 附 openssl genrsa -out app.rsa 1024
|
2
zysidea 2017-08-01 16:40:14 +08:00 1
你的 signKey 获取的有问题,应该这样
```go signBytes, err := ioutil.ReadFile(privKeyPath) signKey, err = jwt.ParseRSAPrivateKeyFromPEM(signBytes) ``` |