老版本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是配置算法,值有多种
-
HS256 使用同一个「secret_key」进行签名与验证(对称加密)。一旦 secret_key 泄漏,就毫无安全性可言了。
-
因此 HS256 只适合集中式认证,签名和验证都必须由可信方进行。
-
传统的单体应用广泛使用这种算法,但是请不要在任何分布式的架构中使用它!
-
RS256 是使用 RSA 私钥进行签名,使用 RSA 公钥进行验证。公钥即使泄漏也毫无影响,只要确保私钥安全就行。
-
RS256 可以将验证委托给其他应用,只要将公钥给他们就行。
-
ES256 和 RS256 一样,都使用私钥签名,公钥验证。算法速度上差距也不大,但是它的签名长度相对短很多(省流量),并且算法强度和 RS256 差不多