钉钉客户端开发,使用企业员工对ISV授权的功能,第一步先跳转到事例地址https://h5.dingtalk.com/personauth/auth.html?corpid=ding4ed6ds27b5e7&suite_key=suiteytxazchcpxssxxpsm&redirect_uri=http%3a%2f%2fXX.XX.XX%3a7001%2fcrm%2fuserAuth&state=aaa,页面会正常跳转到授权的页面,但是同时redirect_uri参数的回调地址会以新窗口的方式被自动打开,请问这是什么原因,怎么阻止这新页面的弹出?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在钉钉客户端开发中,如果需要实现企业员工对独立软件供应商(ISV)的授权功能,您提到的跳转到授权页面是一个常见的做法。这个链接https://h5.dingtalk.com/personauth/auth.html?corpid=ding4ed6ds27b5e7
是一个示例,其中corpid
参数用于标识企业的唯一ID。不过,请注意,实际使用时,您需要将corpid
替换为您自己企业的CorpID。
以下是实现这一功能的基本步骤:
获取CorpID和AppID:首先,作为ISV,您需要在钉钉开放平台注册并创建应用,获取到您的AppID(也称为AgentID)以及目标企业的CorpID。CorpID是每个钉钉企业组织的唯一标识。
构建授权链接:使用获得的CorpID,构建授权跳转的URL。如您所示,URL格式大致为:
https://h5.dingtalk.com/personauth/auth.html?corpid=YOUR_CORPID&agentid=YOUR_AGENTID&state=STATE_STRING
其中: - YOUR_CORPID
是目标企业的CorpID。 - YOUR_AGENTID
是您在钉钉开放平台创建的应用ID。 - STATE_STRING
是一个可选的状态参数,用于防止跨站请求伪造攻击(CSRF),您可以传入一些自定义字符串,授权后钉钉会原样返回这个状态值,以便于您校验请求来源。
跳转授权:在您的应用内,当需要用户授权时,通过JavaScript或其他方式触发这个URL的跳转,让用户进入钉钉授权页面。
处理授权回调:用户同意授权后,钉钉会根据您提供的回调地址(在钉钉开放平台配置)进行重定向,携带授权码(auth_code)等信息。您的服务器端需要接收这个授权码,并通过钉钉的API(如sns.gettoken_bycode
)换取access_token和refresh_token,从而代表用户访问钉钉的开放接口。
存储和使用Token:获取到access_token后,您可以使用它来调用钉钉API,实现如获取用户信息、发送消息等功能。同时,建议您妥善存储这些令牌,并处理好刷新机制,以维护长期有效的访问权限。
请确保在开发过程中,遵循钉钉开放平台的文档指引和最佳实践,以保证应用的安全性和用户体验。如果有更具体的技术问题,可以查阅钉钉开发者文档获取详细信息。