钉钉第三方个人应用身份验证

摘要:
后端使用nodejs开发,node版本v10.16.0。加密的结果和官方示例中是一样的。

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

下方是代码段:

constcrypto=require('crypto');
consturlencode=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);

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

免责声明:文章转载自《钉钉第三方个人应用身份验证》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL 查询decimal字段去除自动补零html 获取和写入cookie的 方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

oracle日期处理函数整理

1.trunc 函数   截断函数既可以截取日期 也可以截取数字   返回今天的日期 select trunc(sysdate)  from dual; --07-6月 -20       返回昨天的日期 select trunc(sysdate-1) from dual;   返回当月第一天 select trunc(sysdate,'mm')  fro...

mysql同时使用order by和limit查询时的一个严重隐患 -- 丢失数据

转自: https://blog.csdn.net/tsxw24/article/details/44994835 我经常使用order by和limit来做数据分页显示并排序,一直也没发现过什么问题。但这两天缺遇到一个严重的问题,在按时间戳升序排列并用limit分批读取数据时,却发现在某些记录丢失了,表中明明有的记录确死活读取不到。研究了大半天终于发现了...

[转帖]javascript版 UrlEncode和UrlDecode函数

VBScript<script language="vbscript">Function str2asc(strstr)     str2asc = hex(asc(strstr)) End Function Function asc2str(ascasc)     asc2str = chr(ascasc) End Function<...

RTP协议之Header结构解析

实时传输协议 RTP,RTP 提供带有实时特性的端对端数据传输服务,传输的数据如:交互式的音频和视频。那些服务包括有效载荷类型定义,序列号,时间戳和传输监测控制。应用程序在 UDP 上运行 RTP 来使用它的多路技术和 checksum 服务。2 种协议都提供传输协议的部分功能。不过,RTP 可能被其他适当的下层网络和传输协议使用。如 果下层网络支持,R...

时间序列预测——深度好文,ARIMA是最难用的(数据预处理过程不适合工业应用),线性回归模型简单适用,预测趋势很不错,xgboost的话,不太适合趋势预测,如果数据平稳也可以使用。

补充:https://bmcbioinformatics.biomedcentral.com/articles/10.1186/1471-2105-15-276 如果用arima的话,还不如使用随机森林。。。   原文地址:https://medium.com/open-machine-learning-course/open-machine-learni...

分布式系统唯一ID生成方案汇总

系统唯一ID是我们在设计一个系统的时候常常会遇见的问题,也常常为这个问题而纠结。生成ID的方法有很多,适应不同的场景、需求以及性能要求。所以有些比较复杂的系统会有多个ID生成的策略。下面就介绍一些常见的ID生成策略。 1. 数据库自增长序列或字段 最常见的方式。利用数据库,全数据库唯一。 优点: 1)简单,代码方便,性能可以接受。 2)数字ID天然排序,...