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

推荐订阅源

T
Tenable Blog
Last Week in AI
Last Week in AI
P
Proofpoint News Feed
Engineering at Meta
Engineering at Meta
H
Help Net Security
F
Fortinet All Blogs
MyScale Blog
MyScale Blog
宝玉的分享
宝玉的分享
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - 司徒正美
量子位
N
Netflix TechBlog - Medium
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
Recorded Future
Recorded Future
博客园 - 三生石上(FineUI控件)
Vercel News
Vercel News
aimingoo的专栏
aimingoo的专栏
I
InfoQ
Microsoft Security Blog
Microsoft Security Blog
Scott Helme
Scott Helme
The Last Watchdog
The Last Watchdog
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
IT之家
IT之家
AI
AI
WordPress大学
WordPress大学
Security Archives - TechRepublic
Security Archives - TechRepublic
Google Online Security Blog
Google Online Security Blog
U
Unit 42
V2EX - 技术
V2EX - 技术
MongoDB | Blog
MongoDB | Blog
Schneier on Security
Schneier on Security
博客园 - Franky
H
Heimdal Security Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Jina AI
Jina AI
W
WeLiveSecurity
P
Privacy & Cybersecurity Law Blog
Cloudbric
Cloudbric
B
Blog RSS Feed
N
News | PayPal Newsroom
S
Securelist
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
Hacker News - Newest:
Hacker News - Newest: "LLM"
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
博客园_首页
罗磊的独立博客
H
Hackread – Cybersecurity News, Data Breaches, AI and More
雷峰网
雷峰网

博客园 - 重粒子

文件在线预览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在附件中