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