官网文档
获取appId及appSecret
前端代码
在页面中先引入如下JS文件(支持https)
<script src="https://g.alicdn.com/dingding/dinglogin/0.0.5/ddLogin.js"></script>
$(function () {
//声明钉钉二维码参数包括【扫描授权id、企业id】
var ding = {
"appid": "",
"agentid": "",
"corpid": "",
"uri": "",
"redirect_uri": "",
"code": "",
"accesstoken": ""
};
//生成钉钉二维码页面
//1.5.1.设置扫描授权id
ding.appid = "appid";
//1.5.2.设置重定向地址
ding.redirect_uri = "redirct_url";
//1.5.3.扫码触发跳转钉钉接口地址
ding.uri = "https://oapi.dingtalk.com/connect/oauth2/sns_authorize?appid=" + ding.appid + "&response_type=code&scope=snsapi_login&state=bind&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",
});
//监听钉钉扫码获取loginTmpCode
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=" + ding.appid + "&response_type=code&scope=snsapi_login&state=bind&redirect_uri=" + ding.redirect_uri + "&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);
}
;
});
后端通过临时授权码获取授权用户的个人信息,实现自己的业务逻辑