zoukankan      html  css  js  c++  java
  • 钉钉第三方个人应用身份验证

    后端使用nodejs开发,node版本v10.16.0。

    废话不多说直接上干货~~~~~~

    首先看一下钉钉官方文档中的钉钉签名例子:

      • timestamp=1546084445901
      • appSecret=testappSecret
      • signature=HCbG3xNE3vzhO+u7qCUL1jS5hsu2n5r2cFhnTrtyDAE=
      • urlEncode后的signature=HCbG3xNE3vzhO%2Bu7qCUL1jS5hsu2n5r2cFhnTrtyDAE%3D

    现在要做的就是根据钉钉官方给出的例子,加密之后能够匹配的上。

    在上代码之前,需要引入的包文件:

    1、crypto包:用于加密签名,我用的版本是:1.0.1

    2、urlencode包:用于转换密文,我用的版本:1.1.0

    下方是代码段:

    
    
    const crypto = require('crypto');
    const urlencode = require('urlencode');

    //
    这个是请求钉钉签名接口的参数 let requestData = { tmp_auth_code:code }; //官方例子中的时间戳 let timestamp="1546084445901"; //官方例子中的appSecret码 let appSecret="testappSecret"; //设置appSecret为"sha256"加密的密钥 let hash_256 = crypto.createHmac("sha256",appSecret); //对时间戳进行加密,并使用“base64”输出 let signature = hash_256.update(new Buffer(timestamp).toString("utf8"),'utf8').digest("base64"); console.log("加密结果:",signature); //对加密密文进行urlEncode转化【之所以对密文要转换,是担心密文中有非法字符】 let urlSignature =urlencode(signature); console.log("urlencode转换:",urlSignature);

    到这里,对官方给出的示例进行签名加密就结束了。加密的结果和官方示例中是一样的。

  • 相关阅读:
    k8s 基础 pod操作
    python 字典 get 小例子
    linux 日志
    python 基础 文件操作
    k8s 基础 k8s架构和组件
    k8s 基础 核心概念
    HDU1272--小希的迷宫(并查集)
    POJ1182--食物链(经典并查集)并查集看不出来系列2
    HDU 3038 How Many Answers Are Wrong (并查集)---并查集看不出来系列-1
    二分快速幂
  • 原文地址:https://www.cnblogs.com/shendaxian/p/12580193.html
Copyright © 2011-2022 走看看