战魔
网络游戏 | 104M | 2020-12-16
下载来自: 98游戏 浏览: 13 次 2026-05-18 14:48:42:05
需完成钉钉App免登集成:一、创建配置应用获取corpid与AppKey/AppSecret;二、H5通过$CORPID$占位符和requestAuthCode获取authCode;三、小程序调用getAuthCode获取authCode;四、服务端用authCode换sns_token并拉取用户信息建会话;五、配置HTTPS回调域名并备案。

如果您希望将第三方应用无缝集成至钉钉环境,并实现用户无需重复登录即可访问应用,需完成钉钉App免登集成。该过程依赖企业身份识别、授权码获取与用户身份校验三重机制。以下是具体实施路径:
在钉钉开放平台完成应用注册是免登集成的前提,系统将分配唯一corpid与应用凭证,用于后续身份识别与签名验证。小程序类型应用更利于调用原生API并保障免登体验一致性。
1、登录钉钉开放平台,使用开发者账号进入控制台。
2、点击「应用开发」→「企业内部应用」或「第三方企业应用」,选择「创建应用」。
3、填写应用名称、Logo、描述等基本信息,提交后获取AppKey与AppSecret。
4、在「应用信息」页复制corpid,该值为企业级唯一标识,不可变更,后续所有接口调用均需携带。
H5微应用通过URL参数注入方式动态获取当前组织corpid,并借助钉钉JSAPI唤起免登授权弹窗,最终换取临时授权码用于服务端换token。
1、设置应用首页URL为含占位符格式:https://yourdomain.com/login?corpId=$CORPID$,钉钉容器将自动替换为真实corpid。
2、在页面中引入钉钉JSAPI SDK:<script src="https://g.alicdn.com/dingding/open-develop/1.12.0/dingtalk.js"></script>。
3、调用dd.runtime.permission.requestAuthCode方法,传入corpid参数,触发授权弹窗。
4、前端获取返回的authCode,通过AJAX发送至自身服务端接口。
小程序可直接调用dd.getAuthCode或dd.corpId获取上下文信息,避免URL参数解析风险,提升安全性与稳定性。
1、在小程序代码中执行dd.corpId同步获取当前企业corpid。
2、调用dd.getAuthCode,指定corpId与scope(如userinfo),获取authCode。
3、将authCode与corpId一同提交至后端服务。
4、服务端使用authCode + AppSecret + corpid向https://oapi.dingtalk.com/sns/get_persistent_code换取persistent_code与sns_token,再调用/sns/get_user_info_bycode获取用户标识。
服务端需完成授权码兑换、用户信息拉取、本地会话初始化三步操作,确保用户身份可信且状态持久化。
1、接收前端传来的authCode与corpId,构造POST请求至钉钉OAuth2.0接口/sns/get_persistent_code。
2、解析响应中的persistent_code与sns_token,再次调用/sns/get_user_info_bycode获取openid及unionid(若已绑定)。
3、根据openid查询本地用户表;若不存在,则依据corpId + openid组合创建新用户记录。
4、生成本地session或JWT令牌,设置有效期,返回至前端完成自动登录。
钉钉强制要求所有免登回调地址必须部署于HTTPS协议下,且域名须提前在开放平台白名单中备案,否则JSAPI调用将被拦截。
1、进入应用「开发管理」→「JSAPI权限管理」,添加业务域名(不含协议与路径,如yourdomain.com)。
2、确保服务器SSL证书有效,支持TLS 1.2及以上版本。
3、验证域名是否生效:在钉钉客户端内打开对应H5页面,检查控制台是否报dd is not defined或permission denied错误。
4、未备案域名无法调用任何JSAPI,包括requestAuthCode,此为硬性准入条件。
以上就是98游戏小编为大家带来的全部内容,想了解更多精彩请持续关注本站。
还没有玩家发表评论,快来抢占沙发吧!