釘釘第三方個人應用身份驗證


后端使用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);

到這里,對官方給出的示例進行簽名加密就結束了。加密的結果和官方示例中是一樣的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM