zoukankan      html  css  js  c++  java
  • JWT JSON Web Token

    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 

  • 相关阅读:
    「2017 山东三轮集训 Day1」Flair
    Luogu P4321 随机漫游
    「WC2018」通道
    「CTSC2018」暴力写挂
    关于二项式相乘
    BZOJ #3625 CF #438E 小朋友和二叉树
    GIS可视化
    微信小程序Promise对象
    SQL Server-执行计划教会我如何创建索引
    IIS+NGINX 负载web服务器
  • 原文地址:https://www.cnblogs.com/momobutong/p/8649771.html
Copyright © 2011-2022 走看看