zoukankan      html  css  js  c++  java
  • NodeJ-JWT

    1.nodejs生成jwt

    const jwt = require('jsonwebtoken');
    let key = '8a3d4b8a3f13bc8c013f13bc8c9c0000';
    let txt = {
        uid:123,
        exp:moment().unix() * 20000,
    };
    console.log(txt);
    var aa = jwt.sign(txt, key);
    
    
    var result = jwt.verify(aa, key);
    console.log(result);

    输出内容:
    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ1aWQiOjEyMywiZXhwIjozMDA5MzU3MzA4MDAwMCwiaWF0IjoxNTA0Njc4NjU0fQ.w-Y3fISTQKghFXfUDm1r_husTt7q-RYiM_Wqnc5bHHQ
    { uid: 123, exp: 30093573080000, iat: 1504678654 }

    安装方式:npm install jsonwebtoken

    2.jsrsasign生成JWT

    function sign(algorithm, header, payload, key, isSecretBase64Encoded) {
      var value = '', error = null, headerAsJSON, payloadAsJSON;
    
      try {
        headerAsJSON = JSON.stringify(header);
      } catch (e) {
        error = {result: null, error: {cause: e, who: ['header']}};
      }
    
      try {
        payloadAsJSON = JSON.stringify(payload);
      } catch (e) {
        if (error) {
          error.error.who.push('payload');
        } else {
          error = {result: null, error: {cause: e, who: ['payload']}};
        }
      }
    
      if (error) {
        return error;
      }
    
      if (algorithm === 'HS256') {
        if (isSecretBase64Encoded) {
          try {
            key = b64utob64(key);
            key = CryptoJS.enc.Base64.parse(key).toString();
          } catch (e) {
            return {result: '', error: e};
          }
        } else {
          key = CryptoJS.enc.Latin1.parse(key).toString();
        }
      }
    
      try {
        value = KJUR.jws.JWS.sign(algorithm, headerAsJSON, payloadAsJSON, key);
      } catch (e) {
        error = e;
      }
    
      return value;
    }
    输出内容格式:
    eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NSIsIm5hbWUiOiJTU1NTIiwiYWRtaW4iOnRydWV9.xgFQEKU--DtWFmYZu4B8fXvFk8c1I3sFeohuXMXMqfg

     在线API:https://kjur.github.io/jsrsasign/api/

     下载地址:http://kjur.github.io/jsrsasign/

     

  • 相关阅读:
    javascript Date.prototype
    Mac 安装node.js
    element-ui适配pad 遇到的问题
    GCD实现异步任务同步的两种方式
    颜色判断
    ARC下方法重复问题
    检查IDFA的方法
    mac 下安装ecplise
    注释使用
    Xcode 8.0 控制台打印问题解决办法
  • 原文地址:https://www.cnblogs.com/zhanghuizong/p/7484640.html
Copyright © 2011-2022 走看看