如何使用钉钉的 OAuth 2.0 服务进行登录并获取 Token?图文教程

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token 需要经历五个主要步骤。 首先,在钉钉开发者后台创建一个应用,获取客户端 ID 和密钥。其次,配置回调地址以便接收授权码。接着,构建登录授权页面,用户登录后会跳转到配置的回调地址,获取授权码。然后,利用授权码获取访问令牌 Token。最后,获取到的 Token 即可用于访问钉钉的开放资源。

用 Apifox,节省研发团队的每一分钟

如何使用钉钉的 OAuth 2.0 服务进行登录并获取 Token?图文教程

免费使用 Apifox

相关推荐

最新文章

API

一体化协作平台

API 设计

API 文档

API 调试

自动化测试

API Mock

API Hub

立即体验 Apifox
目录

要使用钉钉的 OAuth 2.0 服务进行授权登录并获取访问令牌 Token,你需要进行以下 5 步的操作配置:

  • 第 1 步:在钉钉开发者后台创建一个应用,这样能获取到应用的客户端 ID 和客户端密钥。
  • 第 2 步:在钉钉开发者后台配置回调地址(重定向地址)。
  • 第 3 步:构造登录授权页面,用户登录后会跳转到第 2 步配置的回调地址,这里能够获取到授权码 code。
  • 第 4 步:根据授权码 code 获取访问令牌 Token。
  • 第 5 步:有了访问令牌 Token 就能够访问钉钉的开放资源。


在开始之前,我们先来了解一下什么是 OAuth 2.0?


什么是 OAuth 2.0?

OAuth 2.0 是一种授权框架,它可以让第三方应用程序在得到你的授权后,有限度地访问一些开放的个人信息。


OAuth 2.0 的运行流程可以用下图表示,其中,客户端代表一方,用户为另一方,认证服务器与资源服务器统一作为一方。

什么是 OAuth 2.0?


在实际应用中,我们可以简化为 3 步来理解:

  1. 获取授权码(code):比如你在一个网站中使用微信扫码登录,这就是一种授权,这一步可以让客户端拿到授权码(code)
  2. 根据授权码向第三方平台的 OAuth 2.0 服务申请访问令牌(Token):客户端使用授权码向认证服务器申请访问令牌,这个令牌允许客户端在一段时间内访问用户的受保护资源。
  3. 根据令牌(Token)获取第三方平台的开放资源:客户端使用获得的访问令牌去访问资源服务器,以获取用户授权范围内的受保护资源。


用一条公式来简化,可以简单表示为:授权码(code)+ 访问令牌(Token)= 开放资源。这个公式概括了整个 OAuth 2.0 的主流程,即通过授权码获取访问令牌,然后利用令牌去访问开放资源。


在钉钉中的 OAuth 2.0 鉴权过程是这样的,你把它们缩减,主流程也是上面的 3 步。

什么是 OAuth 2.0?


我们下面就来实际操作一下怎么使用钉钉的 OAuth 2.0 服务进行登录并获取 Token!


步骤 1:创建应用,获取客户端 ID 和客户端密钥

登录钉钉开发者后台,然后这里创建一个应用,填写应用的基本信息即可。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token

应用创建完毕,点击进到里面,你会看到【应用信息】这一页里有相关的应用凭证,页面上显示的 AppKey 就是我们等会儿要用到的客户端 ID(clientId),AppSecret 就是客户端密钥(Client Secret)。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


步骤 2:配置回调地址

点击页面左侧边栏的【登录与分享】选项,然后在这里配置回调地址,或者称为回调域名、重定向地址。我们需要用这个回调地址来接收授权码 code,所以你要保证可用,一般是用你的域名,也可以用任一其它可用的域名。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


步骤 3:构造登录授权页面(授权码的请求地址)

当上面两步配置好以后,也就是拿到客户端 ID(clientId)的值和配置好回调地址以后,我们就可以构造登录页面了,根据钉钉官方文档的描述,要构造登录授权页面,其页面需要的参数如下:

https://login.dingtalk.com/oauth2/auth?redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb&response_type=code&client_id=dingbbbbbbb&scope=openid&state=dddd&prompt=consent

上面的这个登录授权页面链接,你需要把redirect_uri参数后面的链接替换成你的回调地址,也就是在第 2 步中配置的回调地址,而且需要把你的回调地址转成urlencode格式的,具体怎么转你可以搜一下,网上有相关的工具,也可以问 ChatGPT。然后把client_id参数后面的值替换成你的客户端 ID(clientId),也就是在第 1 步获取到的客户端 ID。


上面的两个参数替换好之后,将其复制到浏览器中,然后按回车打开,如果是初次访问,这时候一般会让你扫码登录,如果已经使用过,也可以点击“立即登录”。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


点击登录之后,就会跳转到“第 2 步”配置的回调地址,地址的后面就会显示 code 参数(5 分钟内有效),我们可以把它的值复制下来,然后拿这个授权码 code 去获取访问令牌 Token。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


步骤 4:获取访问令牌 Token

根据钉钉官方文档的描述,要获取访问令牌 Token,你需要发送的请求 URL 为

https://api.dingtalk.com/v1.0/oauth2/userAccessToken

需要携带的请求 Body 为:

{
  "clientId" : "在第 1 步获取到的客户端 ID(AppKey)",
  "clientSecret" : "在第 1 步获取到的客户端密钥(AppSecret)",
  "code" : "第 3 步获取到的 code 值",
  "refreshToken" : "",
  "grantType" : "authorization_code"
}

在这里,你会看到这个请求 Body 是 JSON 格式的,也就是Content-Typeapplication/json,这有点奇怪。根据 OAuth 2.0 协议的标准规范来说,应该把Content-Type定义为application/x-www-form-urlencoded才符合协议规范,不知道钉钉官方是怎么回事。


上面获取访问令牌 Token 的请求地址,我们可以拿到 Apifox 中调试。Apifox 是一款非常优秀的接口调试、管理工具,可以很方便的进行接口测试。在 Apifox 中新建一个 HTTP 项目后打开,然后在项目里新建一个 POST 请求,将上面的 URL 路径复制过来,然后点击“保存”,接着来到“运行”页。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


在“运行”页,将上面的 JSON 复制下来,放到【运行->Body->json】里面,记得将里面的参数替换成你的,授权码 code 过期之后,你需要复制“第 3 步”的地址重新生成一个。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


当请求的 URL、请求的 POST 方法和请求 Body 都设置好以后,就可以点击“发送”按钮来获取到钉钉给我们返回的 Token。一个 code 只能发送一次请求,发送第二次的时候就失效了。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


当访问令牌 accessToken 获取到之后,你就可以用这个令牌来请求钉钉的开放资源了,具体有什么开放 API 提供,你可以参考钉钉的官方帮助文档,这里不再赘述。


使用 Apifox 直接获取 OAuth 2.0 的 Token

Apifox 中,是可以直接获取到 OAuth 2.0 服务提供的 Token 访问令牌的,你只需要打开任一接口(或目录),选择【修改文档 -> Auth -> OAuth 2.0】选项,然后就可以在这里配置。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


需要配置的内容跟上面的步骤一样,将相关的内容填入即可。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token

填写完毕,点击“获取 Token”按钮,就会弹出一个窗口,让你登录。

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


登录成功后,就会获取到 Token 访问令牌,并显示在页面上,有了 Token 访问令牌,你就可以去获取对应的第三方平台的开放资源了,非常的方便,快去快去试试吧!

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token


需要注意的是,Apifox 支持根据 OAuth 2.0 标准协议规范获取 Token,这意味着只有当第三方平台的 OAuth 2.0 认证也严格遵循标准的协议规范时,才能成功获取 Token,否则会失败。更多信息你可以参考 Apifox 帮助文档的 OAuth 2.0 模块

总结

使用钉钉的 OAuth 2.0 服务进行登录并获取 Token 需要经历五个主要步骤。

  1. 首先,在钉钉开发者后台创建一个应用,获取客户端 ID 和密钥。
  2. 其次,配置回调地址以便接收授权码。
  3. 接着,构建登录授权页面,用户登录后会跳转到配置的回调地址,获取授权码。
  4. 然后,利用授权码获取访问令牌 Token。
  5. 最后,获取到的 Token 即可用于访问钉钉的开放资源。


这个过程需要谨慎操作,确保各项配置正确,以确保顺利获取 Token。同时,需注意 Token 的有效期,及时更新以保证持续访问。总的来说,通过遵循这五个步骤,可以顺利地实现利用钉钉 OAuth 2.0 服务进行登录并获取 Token 的流程。

学习更多: