钉钉扫码登录中的签名算法在python中的实现

签名算法为HmacSHA256,签名数据是当前时间戳timestamp,密钥是appId对应的appSecret计算出来的签名值,算出来的digest再经过base64加密后即是所需要的签名数据。官方文档中只给了Java和PHP的示例demo,因此,根据Java和PHP的demo写一个python版的。

 1 import hmac
 2 from base64 import standard_b64encode
 3
 4
 5 def get_ding_talk_signature(app_secret, utc_timestamp):
 6     """
 7     :param app_secret: 钉钉开发者文档创建的app密钥
 8     :param utc_timestamp: 官方文档中要签名的数据,单位是毫秒时间戳
 9     :return: 为所需要的签名值,此值为可逆的
10     """
11     digest = hmac.HMAC(key=app_secret.encode(‘utf8‘),                          msg=utc_timestamp.encode(‘utf8‘),                          digestmod=hmac._hashlib.sha256).digest()
14     signature = standard_b64encode(digest).decode(‘utf8‘)
15     return signature

以下是钉钉官方的签名计算文档链接

https://ding-doc.dingtalk.com/doc#/faquestions/hxs5v9

原文地址:https://www.cnblogs.com/zepc007/p/12154253.html

时间: 2024-10-11 20:04:43

钉钉扫码登录中的签名算法在python中的实现的相关文章

反向工程解析QQ扫码登录的OAuth2流程

1. 引言-与OAuth2有关 ??OAuth 2.0协议(RFC 6749)被广泛应用于互联网应用中,最常见的可能就是第三方授权登录应用了.在许多应用网站中用户登录时,可以使用支付宝.微信.QQ的已有账号进行登录,这些应用网站与阿里.腾讯共享了用户的信息和资源.??OAuth 2.0协议的中心思想是让请求用户资源的一方(在RFC 6749中被称为client)向资源拥有方请求访问权限,请求访问权限的过程不是通过使用用户在资源拥有方的访问权证获得,而是将用户引向资源拥有方的授权服务器(Autho

【JavaWeb开发】初步实现网站应用钉钉扫码登录

http://blog.csdn.net/baofeidyz/article/details/59059379 版权声明:转载请注明我的个人微信平台 暴沸 目录(?)[+] 写在前面:如果你还不知道钉钉是什么,就赶紧问问Google.当然,这篇博客是用流水线的形式完成钉钉扫码登录. 第一步,看官方文档 网站应用钉钉扫码登录开发指南(钉钉官网) 如果你想要通过用户扫码获取到他的个人信息,那么你需要完成全部的交互,如果你只是想为你的网站做一个免登录处理,其实只要拿到用户的openid就可以了.当然我

钉钉扫码登录web网站

钉钉扫码登录网站 前言 ?由于本公司前后台分离,这里主要讲述后台的实现逻辑与过程,前端相关的一略而过.前端我们采用的是把二维码内嵌到我们的网页中. 流程如下: 1.登录钉钉后台创建一个企业应用 2.根据appid与app_secret获取access_token access_token有效期为2个小时,可以自行缓存. /** * 获取access token 有效期2 个小时,有效期获取,值不变,时间延长 * @return */ public static DdResult getAcces

钉钉扫码登录网站(两种方式实现)

原文:钉钉扫码登录网站(两种方式实现) 钉钉扫码登录网站(两种方式实现)# 效果:# 源代码地址:https://github.com/jellydong/DingQrCodeLogin 动手敲代码!# 第一步,钉钉后台配置 参考链接:获取appId及appSecret. 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免登过程中验证身份的appId及appSecret,创建后即可看到appId和appSecret. 这里因

钉钉扫码登录 java

java获取扫码登录后的钉钉id 从而可以查出员工具体信息 部门具体信息 1.注册钉钉企业账号 注册地址 https://oa.dingtalk.com/register.html 开发文档地址 https://open-doc.dingtalk.com/microapp/isv 注册完支行查看corpId corpSecret 创建扫码登录使用的app ID.appSecret 2.下载钉钉sdk (http://img.alicdn.com/top/i1/LB1l7mXv0knBKNjSZK

网页接入dingding扫码登录

前言 有时候我们做了一些网页,希望只有某些人才能看的话,可以搞一个钉钉扫码登录,接入也比较简单,下面记录下接入的过程. 流程 我们先看看官方的文档:钉钉接入文档梳理一下官方的流程:1.先跳去一个扫码网页,配置好参数就能跳,然后用用户去扫码:2.扫码成功后,会自动跳转回你之前设置的页面,并在链接上带一个code的参数:3.利用appkey和秘钥去获取token,这个token有效期为2小时:4.利用第2步获取的code和第3步获取的token,去请求接口,得到一个持久码:5.利用第4步获取的持久码

扫码登录是如何实现的?

网页版微信刚推出时,无数人被它的登录方式惊艳了一下,不需要输入用户名密码,打开手机微信扫一扫,便自动登录.从原理上讲,二维码只能是一段文本的编码,如何用它实现快捷登录的呢? 打开网页版微信,可以看到如下的页面: 微信扫码界面 如果你用我查查.支付宝.新浪微博等软件扫码二维码,你会发现此二维码解析出来是如下的网址: https://login.weixin.qq.com/l/obsbQ-Dzag== 接下来详细介绍一下扫码登录具体的每个步骤: 扫码登录完整流程 ①:用户 A 访问微信网页版,微信服

微信网页扫码登录的实现

为了让用户登录网站的门槛更低,微信扫一扫登录变得越来越广泛,所以最近加紧赶制的项目中有用到这个功能,此篇文字的出发点基于微信开放平台已经配置好域名(80端口)并且认证成功获得app_id和secret并有权限调用微信的接口.好了,就先谈一谈微信扫码登录的整个流程吧. 第一步,我们必须得把二维码放在页面上显示.首先普及一下二维码是有失效时间以及失效状态的,一旦你扫过一次二维码或者在某段时间内没有扫描页面上的二维码,该二维码就失效了.OK,微信官网给我们提供两种方式来显示二维码:1.后台发请求返回一

C#开发微信门户及应用(45)--微信扫码登录

在前面随笔<C#开发微信门户及应用(41)--基于微信开放平台的扫码登录处理>介绍了基于微信开放平台接口实现的微信扫码直接登录的过程.本篇介绍对扫码登录的一些改进和处理,以便更方便应用在实际项目中. 1.扫码登录配置处理 在我前面的随笔扫码登录处理中,介绍了账号登陆和扫码登录并存的情况,有时候我们可能想只是允许用户扫码登录即可,也就是不需要账号登陆,这种情况我们可以通过进行配置实现处理.例如我在一个基于微信的系统应用里面,通过配置实现了仅仅允许扫码登录的效果.也就是我们可以根据配置,因此其他登