热门推荐
钉钉企业内部应用 - PHP 扫码登录
2024-12-30 02:31

本文是根据钉钉官方文档归纳所出,最后有 PHP 测试成功的 demo。


钉钉登录是基于 OAuth2.0 协议标准构建的钉钉 OAuth2.0 授权登录系统。 在进行钉钉 OAuth2.0 授权登录接入之前,需要先创建一个应用,并获得相应的 和 。


钉钉 OAuth2.0 授权登录让钉钉用户使用钉钉身份安全登录第三方应用或网站,在钉钉用户授权登录已接入钉钉 OAuth2.0 的第三方应用后,第三方可以获取到用户的接口调用凭证 ,通过 可以进行钉钉开放平台授权关系接口调用,从而实现获取钉钉用户基本开放信息和帮助用户实现基础开放功能等。


获取登录用户信息时序图


钉钉 OAuth2.0 授权登录支持 模式,适用于拥有 server 端的应用授权。该模式整体流程为

  1. 第三方发起钉钉授权登录请求,钉钉用户允许授权第三方应用后,钉钉会拉起应用或重定向到第三方网站,并且带上授权临时票据 参数。
  2. 通过 调用 接口获取授权登录用户信息。


Corpid 是企业在钉钉中的标识,每个企业拥有唯一的 Corpid

UserID 企业内每个员工都有唯一的 UserID,创建后不可修改。

Unionid 用户在当前钉钉开放平台账号范围内的唯一标识,同一个钉钉开放平台账号可以包含多个开放应用

AppKey/AppSecret

  • Appkey 是 企业内部应用 应用的唯一身份标识
  • AppSecret 是对应的调用密钥


实现扫码登录第三方网站。扫码登录指钉钉客户端扫码并确认登录 web 系统,在系统内获取正在访问用户的钉钉身份,无需输入账号密码的开发流程。

注意

  • 此网站并不是钉钉客户端内使用的企业/第三方企业应用。
  • 此功能与企业自建应用/第三方企业应用无关,并且不是钉钉内的应用免登,此功能只能获取到用户 unionId(无手机号和企业相关信息)。
  • 第三方企业应用可根据用户 unionId 判断当前扫码用户是否为企业内部员工。
    • 如果扫码用户是当前企业内部员工,可以根据文档示例,使用 unionId 获取 userid,并获取用户详情。
    • 如果扫码用户是钉钉三方应用授权企业内员工,获取 unionId,可以根据 unionId 在 ISV 获取的授权企业内员工信息表格中,检索得到该扫码人信息。
    • 如果扫码用户是外部用户需企业自行处理。

1. 配置回调域名

  1. 创建 企业内部 应用,详情请参考创建应用。

    应用创建后,在基础信息页面可以查看到应用的 AppKeyAppSecret

  2. 进入应用详情页,然后单击钉钉登录与分享,添加应用回调的URL,以 http 或 https 开头。


2. 构造扫码登录页面

Web 系统可以通过两种方式实现钉钉扫码登录。


方式一 : 使用钉钉提供的扫码登录页面

在企业 Web 系统里,用户点击 使用钉钉扫码登录 时第三方 Web 系统跳转到如下地址 :

 
 

url 里的参数需要换成第三方 Web 系统对应的参数。在钉钉用户扫码登录并确认后,会 302 到你指定的 ,并向 url 参数中追加临时授权友 及 两个参数。


注意:参数涉及的域名,需和登录配置的回调域名一致,否则会提示无权限访问。


方式二 : 支持网站将钉钉登录二维码内嵌到自己页面中

用户使用钉钉扫码登录后 JS 会将返回给网站。


JS钉钉登录主要用途:网站希望用户在网站内就能完成登录,无需跳转到钉钉域下登录后再返回,提升钉钉登录的流畅性与成功率。

钉钉企业内部应用 - PHP 扫码登录


网站内嵌钉钉二维码实现钉钉登录 JS 实现办法

 
 

参数说明


引入的 js 会在获取用户扫描之后将获取的 通过 返回给您的网站。


1. 可以通过以下代码获取

 
 

2. 通过 JS 获取到 后,需要构造并跳转到如下链接

 
 

4. 根据 unionid 获取 userid。

调用 接口获取 ,详情请参考 根据unionid获取用户信息。


说明 : 根据 获取 ,需要创建企业内部应用(小程序或微应用,使用内部应用的 AppkeyAppSecret 调用接口 access_token


5. 根据 userid 获取用户详情。

调用 接口获取用户信息,详情请参考获取用户详情。



点我查看配置教程

第一种: 按钮链接跳转

在企业 Web 系统里,用户点击 使用钉钉扫码登录 按钮时跳转到如下地址 :

 
 

url 里的大写单词是需要替换的变量值。在钉钉用户扫码登录并确认后,会 302 到你指定的 ,并向 url 参数中追加临时授权友 及 两个参数。


注意:参数涉及的域名,需和登录配置的回调域名一致,否则会提示无权限访问。

 

第二种: 生成扫描二维码

根据自己的配置进行调整

 


1. 服务端通过临时授权码 获取授权用户的个人信息。

调用 接口获取授权用户的个人信息,主要是为了拿到用户的 ,详情请参考 根据sns临时授权码获取用户信息。


注意 : 通过临时授权码 获取用户信息,临时授权码只能使用一次。

请求示例 (PHP SDK
 
返回示例
 
返回参数说明

2. 根据 unionid 获取 userid。

调用 接口获取 ,详情请参考 根据unionid获取用户信息。


说明 : 根据 获取 ,需要创建企业内部应用(小程序或微应用,使用内部应用的 AppkeyAppSecret 调用接口 access_token

请求示例(PHP SDK
 
返回示例
 
返回参数说明

3. 根据 userid 获取用户详情。

调用 接口获取用户信息,详情请参考获取用户详情。

请求示例(PHP SDK
 
返回示例
  • 企业内部应用

     
返回参数说明

4. PHP 代码整合

前三步所实现的代码,在同一个逻辑处理中,我来将他整合一下,以下为我自己的测试的 demo ,可根据自己逻辑进行调整。

必须修改

注意 : 要想代码跑的通必须修改 以下地方
在下载的 钉钉 SDK 包里找到 文件,约481行


 
 

替换为

 
代码示例
 

下载 demo
    以上就是本篇文章【钉钉企业内部应用 - PHP 扫码登录】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/quote/16296.html 
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站https://sicmodule.kub2b.com/mobile/,查看更多   
发表评论
0评