惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

V
Visual Studio Blog
Google DeepMind News
Google DeepMind News
V
V2EX
B
Blog RSS Feed
有赞技术团队
有赞技术团队
博客园 - Franky
美团技术团队
月光博客
月光博客
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
腾讯CDC
云风的 BLOG
云风的 BLOG
L
LangChain Blog
GbyAI
GbyAI
The Cloudflare Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Stack Overflow Blog
Stack Overflow Blog
博客园 - 【当耐特】
The Register - Security
The Register - Security
大猫的无限游戏
大猫的无限游戏
D
Docker
Vercel News
Vercel News
Blog — PlanetScale
Blog — PlanetScale
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - 司徒正美
人人都是产品经理
人人都是产品经理
雷峰网
雷峰网
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
N
Netflix TechBlog - Medium
博客园_首页
A
About on SuperTechFans
J
Java Code Geeks
量子位
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
MongoDB | Blog
MongoDB | Blog
Recent Announcements
Recent Announcements
G
Google Developers Blog
小众软件
小众软件
博客园 - 叶小钗
WordPress大学
WordPress大学
博客园 - 聂微东
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
F
Full Disclosure
Jina AI
Jina AI
H
Help Net Security

博客园 - 重粒子

文件在线预览doc,docx转换pdf(一) vue中集成pdfjs自定义分页 使用 vs code 搭建vue项目(一) post文件下载 css 文本超出2行就隐藏并且显示省略号 js监听全屏下的esc事件 js实现全屏和缩放 ionic 侧栏菜单用法 weblogic获取应用目录路径(war包) 使用pdf.js预览实现读取服务器外部文件 js禁用浏览器后退 java批量将多文件打包成zip格式 Angularjs自定义指令计算浏览器高度 AngularJS封装webupload实现文件夹上传 jquery监听滚动条 pdf预览(pdf.js) $q的基本用法 Jersey RESTful WebService框架学习(八)文件下载防乱码 巧用 Jersey RESTful WebService框架解决文件上传乱码
(钉钉)第三方WEB网站扫码登录
重粒子 · 2018-03-04 · via 博客园 - 重粒子

年底在做钉钉和公司的知识库产品的对接,怎么使用钉钉api的如下:
第一步:
登录:https://oa.dingtalk.com/#/welcome
这点可以自己建立一个企业账号进行测试

点击工作台建立应用

设置

参数说明:
1.应用logo:....
2.应用名称:必填
3.AgentID:自动生成,手机app自动登录需要使用
4.功能介绍:....
5.后端地址:访问api的接口地址
6.首页地址:改应用首页地址
7.pc版首页地址:登录页面地址

第二步
扫码登录的js引入和api调用

钉钉官网api地址:https://open-doc.dingtalk.com/docs/doc.htm?spm=a219a.7629140.0.0.Dc2Nel&treeId=385&articleId=104882&docType=1

使用
1.引入

<script src="//g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
//声明钉钉二维码参数包括【扫描授权id、企业id】
	var ding={"appid":"","agentid":"","corpid":"","uri":"","redirect_uri":"","code":"","accesstoken":""};
	//1.5.1.设置扫描授权id
	ding.appid="";
	//1.5.2.设置重定向地址
	ding.redirect_uri="";
	//1.5.3.扫码触发跳转钉钉接口地址
	ding.uri = "https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid="+ding.appid+"&response_type=code&scope=snsapi_login&state=STATE&redirect_uri="+ ding.redirect_uri;
	

	
	
	//2.2.扫码触发事件
	var obj = DDLogin({
		id:"login_container",
		goto: encodeURIComponent(ding.uri),
		style: "border:none;background-color:#FFFFFF;",
		width : "240",
		height: "300",
	});
	
	//2.3.获取code
    var getcode = function (event) {
        var origin = event.origin;
        console.log("origin", event.origin);
        if( origin == "https://login.dingtalk.com" ) { //判断是否来自ddLogin扫码事件。
            var loginTmpCode = event.data; //拿到loginTmpCode后就可以在这里构造跳转链接进行跳转了
            ding.code=loginTmpCode;
            console.log("获取到code", loginTmpCode);
            window.parent.postMessage(loginTmpCode,'*');
            //1.跳转到主页面,微应用自身截取code比对用户信息
             var redirect_uri_check = "https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=dingoazjmclpvolnxq3wba&response_type=code&scope=snsapi_login&state=STATE&redirect_uri=http://&loginTmpCode=";
           	window.location.href=redirect_uri_check+loginTmpCode;
        };
	};
	//2.4.钉钉扫码监听
	if (typeof window.addEventListener != 'undefined') {
	    window.addEventListener('message', getcode, false);
	} else if (typeof window.attachEvent != 'undefined') {
	    window.attachEvent('onmessage', getcode);
	};
	//2.5.这儿主要是获取code,返回钉钉id,进行后端的钉钉id比对,api接口见下
	var url = window.location.search.split("&"); 
	var code=url[0].substring(url[0].lastIndexOf("=")+1);
		console.log(code);
		if(code!=""){
			var uri="/"
			$http({
				url:uri,
				method:"GET",
				headers : {'Content-Type' : 'application/x-www-form-urlencoded'}
			}).success(function(data){
				console.log(data)
				if(data!=""){
						$window.localStorage["user"] = angular.toJson(data[0]);
						window.location.href="/";
					}else{
						alert(data[0].msg);
						$scope.user.info="";
						window.location.href="/";
					}
			});
	};

调用api在附件中