免密登录:
当用户在钉钉内部打开应用,无需输入用户名和密码,直接获取当前钉钉信息进行登录。
前端实现流程:
1.首先获取企业id并向钉钉服务器获取免密登录所需要的的code
dd.ready(function() {
dd.runtime.permission.requestAuthCode({
corpId: "企业id", // 企业id
onSuccess: function(info) {
code = info.code,
goLogin(code)
},
onFail: function(fail) {
console.log('error')
}
})
})
补充:如果应用不止可以通过钉钉内部免密登录 那么可以判断当前浏览器标识是否为钉钉 是的话进行免密登录
window.navigator.userAgent.includes("DingTalk")
2.获取到code之后 携带code向我们自己的服务端获取当前用户的登录凭证
function goLogin(code){
$.ajax({
type: "GET",
contentType: 'application/json; charset=UTF-8',
url: `https://www.test.com/url/?code=${code}`,
dataType: "json",
async: false,
success: function(req) {
if (req.code == 0) {
sessionStorage.setItem('stafftoken', req.data.stafftoken);
window.location.href= '需要跳转的内部应用首页地址';
}
},
error: () => {
layui.use('layer', function(){
console.log('自动登录失败')
});
}
})
}
3.获取用户个人信息
通过登录凭证向服务端请求