码迷,mamicode.com
首页 > Web开发 > 详细

JWT JSON Web Token

时间:2018-03-26 12:37:40      阅读:158      评论:0      收藏:0      [点我收藏+]

标签:rom   nat   传递   str   类型   crypto   http   res   技术分享   

JWT(JSON Web Token)

允许我们使用JWT在用户和服务器之间传递安全可靠的信息的规范。

JWT由三个部分组成:header(头部)、payload(载荷)、signature(签名)。

一、头部 header

头部用于描述关于该JWT的最基本的信息,例如其类型以及签名所用的算法等,用base64url编码生成jwt header头部。

var base64url = require("base64url");
var header = {
    ‘typ‘: ‘jwt‘,
    ‘alg‘: ‘hs256‘
};
var base64urlheader = base64url(JSON.stringify(header));

header头部:

  • typ: 类型  
  • alg: 签名所用算法

技术分享图片

二、载荷 payload

var payload = {
    "iss": "momobutong",
    "iat": iat,
    "exp": exp,
    "aud": "www.example.com",
    "sub": "momobutong@example.com",
    "from_user": "B",
    "target_user": "A"
}
var base64urlpayload = base64url(JSON.stringify(payload));
  • iss: 该JWT的签发者
  • sub: 该JWT所面向的用户
  • aud: 接收该JWT的一方
  • exp(expires): 过期时间(Unix时间戳)
  • iat(issued at): 签发时间

技术分享图片

三、签名 signature

签名signature由header头部、载荷payload、密钥组成。

var crypto = require("crypto");
var signature = crypto.createHmac(‘sha256‘, ‘secretkey‘).update(base64urlheader+‘.‘+base64urlpayload).digest(‘hex‘);

技术分享图片

生成jwt 

技术分享图片

JWT JSON Web Token

标签:rom   nat   传递   str   类型   crypto   http   res   技术分享   

原文地址:https://www.cnblogs.com/momobutong/p/8649771.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!