原因
如果想让jwt使用rs256算法来验证token,那么我们必须要生成一个rsa密钥对。签发token时使用私钥,验证token时使用公钥。
1.生成私钥
openssl genrsa -out private.key
2.根据私钥生成公钥
openssl rsa -in private.key -pubout -outform PEM -out public.pem
3.nodejs中使用实例
nodejs读入私钥和公钥
const fs = require('fs')
const privateKey = fs.readFileSync('./private.key')
const publicKey = fs.readFileSync('./public.pem')
签发token
jwt.sign(payload, privateKey, { algorithm: 'RS256' })
验证token
try {
var decoded = jwt.verify(token, publicKey);
} catch(err) {
// err
}