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);

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

  • 相关阅读:
    BZOJ 2876 骑行川藏
    BZOJ 2875 随机数生成器
    DT_修改注册项
    ip001
    ip
    阿里大鱼 阿里云api
    JS_全
    destoon框架二次开发【整理】
    destoon_笔记
    栏目class导航
  • 原文地址:https://www.cnblogs.com/shendaxian/p/12580193.html
Copyright © 2011-2022 走看看