FooTearth's Blog

Json web token (jwt) 介绍

JSON网络令牌(JWT) 是一种 URL安全的 数据传输 方式。

JWT 约定了必须使用 压缩编码 并 经过 JSON WEB Signature(JWS) 数字签名的 JSON对象。 IETF

jwt token 的组成

node 下应用举例

最简使用的方式,只使用简单加密的签名验签

由于 jwt token 的数据域是可以直接反解出来的, 所以 数据域 中只存放 索引信息,如 user_id

签发 token

jwt = require 'jsonwebtoken'

token_seed = 'example'
user_id = '000001'
orderToken = (user_id) ->
  jwt.sign
    id: user_id
  , token_seed

验证 token

decodedToken = (token) ->
  jwt.verify token
  , token_seed

checkToken = (token) ->
  {id} = decodedToken token
  id

更安全的做法

  • token_seed 可以是动态的,一次性的
  • 也可以使用其他加密方式 -- TODO

其他解决方案


参考资料

Auth0