老版本express-jwt和新版本express-jwt

  • Post author:
  • Post category:其他


老版本express-jwt用法:


const expressJWT = require(“express-jwt”)


const scretKey = ‘hhhhhhh’


app.use(expressJWT({ secret: secretKey }).unless({ path: [/^\/api\//] }))


新版本express-jwt用法:


const expressJWT = require(“express-jwt”)


app.use(expressJWT.expressjwt({ secret: secretKey, algorithms: [“HS256”] }).unless({ path: [/^\/api\//] }))


其中algorithms是配置算法,值有多种


  1. HS256 使用同一个「secret_key」进行签名与验证(对称加密)。一旦 secret_key 泄漏,就毫无安全性可言了。


  • 因此 HS256 只适合集中式认证,签名和验证都必须由可信方进行。


  • 传统的单体应用广泛使用这种算法,但是请不要在任何分布式的架构中使用它!


  1. RS256 是使用 RSA 私钥进行签名,使用 RSA 公钥进行验证。公钥即使泄漏也毫无影响,只要确保私钥安全就行。


  • RS256 可以将验证委托给其他应用,只要将公钥给他们就行。


  1. ES256 和 RS256 一样,都使用私钥签名,公钥验证。算法速度上差距也不大,但是它的签名长度相对短很多(省流量),并且算法强度和 RS256 差不多



版权声明:本文为m0_70542915原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。