python钉钉扫码登录程序_使用python+django集成钉钉三方扫码登陆
使用python+django集成钉钉三方扫码登陆
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)
1. 进入钉钉开放平台---》点击左下角 ----》移动接入应用----》登陆----》点击创建扫码登陆应用授权。
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)
2. 创建一个网站应用,其中有用的信息是appid,appsecret,还有回调网址 。
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)
3. 根据官方文档构建登陆扫码url。
#构造钉钉登录url
def ding_url(request):
appid = 'dingoaukgkwqknzjvamdqh'#替换成自己的appid
redirect_uri = 'http://localhost:8000/dingding_back/'#替换成自己的回调路由
return redirect('https://oapi.dingtalk.com/connect/qrconnect?appid='+appid+'&response_type=code&scope=snsapi_login&state=STATE&redirect_uri='+redirect_uri)
然后访问http://localhost:7878/ding_url,就可以进行扫码
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)
4. 最后我们编写回调url。将时间戳,秘钥进行hmac加密
import time
import hmac
import base64
from hashlib import sha256
import urllib
import json
#构造钉钉回调方法
def ding_back(request):
#获取code
code = request.GET.get("code")
t = time.time()
#时间戳
timestamp = str((int(round(t * 1000))))
#替换成自己的appSecret
appSecret ='ly-AzMKMmCKQP3geaILT_An32kEfKO3HeOtApy5CgKwjytevVZC0WYsT2gxMB160'
#构造签名
signature = base64.b64encode(hmac.new(appSecret.encode('utf-8'),timestamp.encode('utf-8'), digestmod=sha256).digest())
#请求接口,换取钉钉用户名
payload = {'tmp_auth_code':code}
headers = {'Content-Type': 'application/json'}
res = requests.post('https://oapi.dingtalk.com/sns/getuserinfo_bycode?signature='+urllib.parse.quote(signature.decode("utf-8"))+"×tamp="+timestamp+"&accessKey=dingoaukgkwqknzjvamdqh",data=json.dumps(payload),headers=headers)#accessKey替换成自己的appid
res_dict = json.loads(res.text)
print(res_dict)
return HttpResponse(res.text)
\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)
最后我们访问路由就可以得到自己的个人信息。
python钉钉扫码登录程序_使用python+django集成钉钉三方扫码登陆相关推荐
- python钉钉扫码登录程序_钉钉扫码登录网站(两种方式实现)
钉钉扫码登录网站(两种方式实现) 效果: 动手敲代码! 第一步,钉钉后台配置 点击进入钉钉开发者平台 的页面,点击左侧菜单的[移动接入应用-登录],然后点击右上角的[创建扫码登录应用授权],创建用于免 ...
- python用户登录程序_「Python」每日一练:函数的应用之注册登录程序
编程题 函数的应用之注册登录程序 任务内容:要求模拟系统注册及登录的情境,注册密码要求:密码是6位或以上,必须包涵大写字母.小写字母.数字.程序若未退出前,则一直循环运行. 程序编写要求:按要求完善各 ...
- python中函数是一段子程序_用Python来写一个男女相亲小程序|码农的情人节
功能: 你输入你的性别,年龄,生日,我程序就给匹配一下你喜欢的类型,下面我们具体来讲讲怎么用Python写 第一部分:用户输入部分 1.获取用户的输入:我们用raw_input() args =raw ...
- 钉钉扫码登录第三方_在钉钉发布公司重要文件,真的安全吗?
钉钉以疫情在家办公为契机,加上"幸运地"被教育部"选中",在2月5日,钉钉下载量首次超过微信,跃居苹果App Store排行榜第一,并打破App Store记录 ...
- python虚拟机直接加载字节码运行程序_第二章 python如何运行程序
一.python解释器介绍 Python解释器是一种让程序运行起来的程序.实际上,解释器是代码与机器的计算机硬件之间的软件逻辑层. 当Python包安装在机器上后,它包含了一些最小化的组件:一个解释器 ...
- python编写统计选票的程序_使用python编写微信公众号发稿统计程序
近日为学校公众号统计发稿情况,需统计本年度各部门分别所发稿件标题.时间.作者等. 首先考虑查看公众号后台有无统计功能,看到的界面如下: 每页只显示7天的消息,且没有部门作者信息.再看另一界面: 只统计 ...
- python写机器人程序_用Python写的一个多线程机器人聊天程序
本人是从事php开发的, 近来想通过php实现即时通讯(兼容windows).后来发现实现起来特别麻烦, 就想到python.听说这家伙在什么地方都能发挥作用.所以想用python来做通讯模块...所 ...
- python怎么做软件程序_看 Python 超级程序员使用什么开发工具
Python超级程序员使用的开发工具 我以个人的身份采访了几个顶尖的Python程序员,问了他们以下5个简单的问题: 当前你的主要开发任务是什么? 你在项目中使用的电脑是怎样的? 你使用什么IDE开发 ...
- 微信扫码登录的几秒钟里,到底发生了什么(扫码登录原理)
事情经过 这天中午,小A吃完午饭,摊在自己的躺椅上,想趁吃饱喝足的午后时间静静享受独自的静谧. 干点什么好呢?小A单手操作鼠标打开了一个陌生而隐秘的网站.正开着某个视频起劲,突然浏览器弹出了一个对话框 ...
最新文章
- windows Tensorflow cpu版 指令集加速
- webView 点击连接如何不让跳转到系统的 浏览器
- 不写画面的网页程序设计,Web API、Web Service、WCF Service
- 表的插入、更新、删除、合并操作_17_按照条件删除表中记录
- 高性能微服务网关.NETCore客户端Kong.Net开源发布
- 【渝粤教育】国家开放大学2018年春季 8664-21T文书档案管理 参考试题
- 苹果与高通联合抢占 5G!
- java this 代替_关于JAVA中this的使用方法小结
- 联网智能设备安全态势季度报告(2021年第2季度)
- Linux:文件权限数字形式
- 使用python控制其他软件运行并操作处理数据_Python 运行其他程序
- goldendict使用 添加 .blg 添加字典
- win10自动修复处理方法
- BeJSON—实用网站(二)
- “比较级”和“最高级”的用法
- CheckMarx与SonarQube集成
- 孝经白话:三才章第七
- 360环视辅助驾驶硬件系统方案---OV2715+DS90UB913+DS90UB914+FPGA
- avue 属性说明 及使用
- 盘点 Github 上的高仿 app 项目,B站 微博 微信等等
热门文章
- 考大学计算机考试作文,机考作文
- php定时器使用,PHP定时器的说明
- windows server 2008 安装linux,使用WSL在Windows Server 2019上运行Linux的方法
- mysql 编辑数据库内容_详解mysql数据库增删改操作
- vuedraggable能实现自由拖拽功能吗?_基于 vue.js 仿禅道主页拖拽效果
- mysql 5.6.21 rpm_centos_mysql5.6.21_rpm安装
- css两列显示,div+css如何控制信息分两列显示?
- leetcode刷题:循环队列
- C++安全方向openssl:绪论
- xssfsheet removerow 剩下空白行怎么处理_糟糕!开瓶时酒塞不小心掉进酒里该怎么处理?...