开发者社区 问答 正文

钉钉客户端企业员工对ISV授权功能,跳转到授权页面时,为什么会自动弹出回调页面

钉钉客户端开发,使用企业员工对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参数的回调地址会以新窗口的方式被自动打开,请问这是什么原因,怎么阻止这新页面的弹出?

展开
收起
momo11111 2017-03-08 11:45:20 3797 分享 版权
阿里云 AI 助理回答

在钉钉客户端开发中,如果需要实现企业员工对独立软件供应商(ISV)的授权功能,您提到的跳转到授权页面是一个常见的做法。这个链接https://h5.dingtalk.com/personauth/auth.html?corpid=ding4ed6ds27b5e7是一个示例,其中corpid参数用于标识企业的唯一ID。不过,请注意,实际使用时,您需要将corpid替换为您自己企业的CorpID。

以下是实现这一功能的基本步骤:

  1. 获取CorpID和AppID:首先,作为ISV,您需要在钉钉开放平台注册并创建应用,获取到您的AppID(也称为AgentID)以及目标企业的CorpID。CorpID是每个钉钉企业组织的唯一标识。

  2. 构建授权链接:使用获得的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),您可以传入一些自定义字符串,授权后钉钉会原样返回这个状态值,以便于您校验请求来源。

  3. 跳转授权:在您的应用内,当需要用户授权时,通过JavaScript或其他方式触发这个URL的跳转,让用户进入钉钉授权页面。

  4. 处理授权回调:用户同意授权后,钉钉会根据您提供的回调地址(在钉钉开放平台配置)进行重定向,携带授权码(auth_code)等信息。您的服务器端需要接收这个授权码,并通过钉钉的API(如sns.gettoken_bycode)换取access_token和refresh_token,从而代表用户访问钉钉的开放接口。

  5. 存储和使用Token:获取到access_token后,您可以使用它来调用钉钉API,实现如获取用户信息、发送消息等功能。同时,建议您妥善存储这些令牌,并处理好刷新机制,以维护长期有效的访问权限。

请确保在开发过程中,遵循钉钉开放平台的文档指引和最佳实践,以保证应用的安全性和用户体验。如果有更具体的技术问题,可以查阅钉钉开发者文档获取详细信息。

有帮助
无帮助
AI 助理回答生成答案可能存在不准确,仅供参考
0 条回答
写回答
取消 提交回答