钉钉的H5微应用可以通过免登流程实现用户无感登录,以下是具体的步骤和实例:
dd.setStorage
)或Cookie中,这样可以避免每次进入应用都调用钉钉接口进行免登。如何做免登(开放平台)
您好,免登是指用户免除输入钉钉用户名和密码,您所开发的系统便可获取用户身份,实现登录您系统的流程。更多信息您可以点击此处参考身份验证(免登)文档。https://open.dingtalk.com/document/app/enterprise-internal-application-logon-free
免登实现流程:
1.使用dd.getAuthCode获取免登授权码。
2.获取code码时,如果出现domain is notsecure,表示您当前的url并不包含在企业安全可信域名中。如果您是企业内部开发,确认企业下的可用微应用(不包含停用状态的)的域名是否包含你当前页面的域名。如果你是第三方应用开发,确认你当前的域名是否和企业开通提供你的微应用域名相同。
3.使用步骤1方法拿到的免登code调用user/getuserinfo获取用户信息。
注意此处的逻辑!以下几点会导致出现不存在的临时授权码:
1)获取的code有效期只有5分钟,过期失效。
2)自己打印日志确认code是否被重复使用。
3)如果调用user/getuserinfo的时候发生不存在的临时授权码,请确认code是否被重复使用。建议开发者使用拦截器对所有和开放平台通讯有关的请求都打印返回日志(包含请求参数、返回参数、请求时间点、请求时长),便于排查问题。
4)通过步骤3获取到用户信息之后,E应用在域名下无法种植cookie,请用localStorage代替。存储的信息为用户标识的加密或者应用自定义的sessionId。[注意不要暴露用户明文信息,一定要加密],这样避免了同一个用户多次点击时每次都要进行免登,导致多次调用接口,造成资源浪费,请求时间变长,和较差的用户体验。
4.当同一个用户切换不同企业的时候,微应用首页地址添加的corpid=$CORPID$的占位符,钉钉会自动帮你替换为切换的企业的corpid。
5.如果同一个手机设备,被相同企业的不同用户登录,那么此时会话的信息是失效的,否则会造成身份仿冒。
参考https://open.dingtalk.com/document/orgapp/enterprise-internal-application-logon-free
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。