美文网首页
Json web token

Json web token

作者: CAICAI0 | 来源:发表于2018-04-27 15:11 被阅读27次

    用户登录后的凭证大多都用JWT(Json Web Token)下面用Node.js实现签名和验签。

    var jwt = require('jsonwebtoken');
    var fs = require('fs');
    
    var cert = fs.readFileSync('rsa_private_key.pem');
    var token = jwt.sign({userId:'123123',date:12313123},cert,{algorithm:'RS256'});
    
    console.log(token);
    
    var pubCert = fs.readFileSync('rsa_public_key.pem');
    jwt.verify(token,pubCert,{algorithms:['RS256']},function (err,payload){
        console.log(err,payload);
    });
    

    生成pem 类型的秘钥对命令如下

    #先生成私钥
    openssl genrsa -out rsa_private_key.pem 4096
    #格式换成pkcs8
    openssl pkcs8 -topk8 -inform PEM -in rsa_private_key.pem -outform PEM -nocrypt
    #生成对应的公钥
    openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem
    

    最主要的就是私钥签名,公钥验签的基本思想。
    脚本运行结果

    null { userId: '123123', date: 12313123, iat: 1524814012 }
    

    其中iat 是签名的时间戳,所以如果没有其他特殊必要不用在验证信息里面显式添加签名时间。

    相关文章

      网友评论

          本文标题:Json web token

          本文链接:https://www.haomeiwen.com/subject/btnblftx.html