关于钉钉微应用免登录踩坑开发记录

您所在的位置:网站首页 钉钉jsapi鉴权功能 关于钉钉微应用免登录踩坑开发记录

关于钉钉微应用免登录踩坑开发记录

2023-09-14 15:28| 来源: 网络整理| 查看: 265

免登录流程简单说明(若不需要使用钉钉jsapi,则暂不需要鉴权dd.config()): 1.在钉钉管理后台拿到cropid,作为参数,前台处理获得code:

dd.runtime.permission.requestAuthCode({ corpId: corpId, // 企业id onSuccess: function (info) { const code = info.code // 通过该免登授权码可以获取用户身份 } })

2.从钉钉管理后台自建应用里拿到Appkey和Appsecret,后台处理接口拿到access_token 3.将前台获取的code传给后台,后台利用code和access_token就可以返回钉钉员工id,即userid 4.免登完成

说明:userid是员工账号的唯一标识,一旦生成不支持修改;可以登录【企业管理后台(oa.dingtalk.com)】-【通讯录】-【找到该员工】-【点击该员工】查看

最后附上伪代码:

const corpId = to.query.corpid; //在自建应用开发管理应用首页地址添加如下http://xxx.xxx.x.xx:8080?corpid=$CORPID$ //就可以通过query拿到corpid,也可以写死,笔者基于公司项目,只拿一次corpid去做判断 //即第一次进入页面时拿到corpid调取后台接口处理免登,其他页面拿不到corpid则不会调取后台接口直接走token //token失效再回来拿去corpid,重复步骤 dd.ready(function () { dd.runtime.permission.requestAuthCode({ corpId: corpId, // 企业id onSuccess: function (info) { const code = info.code // 通过该免登授权码可以获取用户身份 //console.log(code) xxxxx(code).then(res => { //xxxxx为后台接口名称 // alert(JSON.stringify(res)) if() { ...... //这里就可以做判断token存在与否,或者登录跳转等语句 } else { ...... next(); } }); }, onFail: function (err) { console.log(err) } }); });

记录开发过程中遇到的问题: 问题:后台返回登陆失败,失败原因是IP不在白名单 解决方案:在自建应用开发管理服务器出口IP添加IP即可,若提示“为保证企业自建应用安全,同一个IP只能被一个企业使用,该自建应用与后台测**限公司使用的IP相同。点击查看 解决办法”,则将IP最后改为*即可,即“1.1.1.✳”就可以



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3