配置回调域名。
进入已创建的应用详情页,在基础信息页面可以查看到应用的SuiteKey/SuiteSecret(第三方企业应用)或AppKey/AppSecret(企业内部应用)。

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

权限管理,点击个人权限,申请个人手机号信息权限和通讯录个人信息读权限。

构造登录页面。
说明 登录页面在初次校验登录状态时显示。
https://login.dingtalk.com/oauth2/auth?
redirect_uri=https%3A%2F%2Fwww.aaaaa.com%2Fa%2Fb
&response_type=code
&client_id=dingxxxxxxx //应用的AppKey
&scope=openid //此处的openId保持不变
&state=dddd
&prompt=consent
| 参数 | 是否必填 | 说明 |
|---|---|---|
| redirect_uri | 是 | 授权通过/拒绝后回调地址。注意需要与开发者后台钉钉登录与分享的地址保持一致。 |
| response_type | 是 | 固定值为code。授权通过后返回authCode。 |
| client_id | 是 | 步骤一中创建的应用详情中获取。企业内部应用:client_id为应用的AppKey。第三方企业应用:client_id为应用的SuiteKey。 |
| scope | 是 | 授权范围,授权页面显示的授权信息以应用注册时配置的为准。当前只支持两种输入:openid:授权后可获得用户useridopenid corpid:授权后可获得用户id和登录过程中用户选择的组织id,空格分隔。注意url编码。 |
| state | 否 | 跟随authCode原样返回。 |
| prompt | 是 | 值为consent时,会进入授权确认页。 |
| org_type | 否 | 控制输出特定类型的组织列表,org_type=management 表示只输出有管理权限的组织。注意scope包含corpid时该参数存在意义。 |
| corpId | 否 | 用于指定用户需要选择的组织。注意scope包含corpid时该参数存在意义。传入的corpId需要是当前用户所在的组织。 |
| exclusiveLogin | 否 | true表示专属帐号登录,展示组织代码输入页。 |
| exclusiveCorpId | 否 | 开启了专属帐号功能的组织corpId。注意exclusiveLogin为true时该参数存在意义,表示直接进入该组织的登录页。 |


登录后,打开授权页面。
说明 首次授权时,显示授权页面
单击同意,触发以下流程。
(1)点击同意后,钉钉在url返回authCode。如下图所示。

(2)根据authCode,调用服务端获取用户token接口,获取用户个人token。
(3)根据用户个人token,调用获取用户通讯录个人信息接口,实现获取用户个人信息。
{
"nick": "zhangsan",
"avatarUrl": "https://xxx",
"mobile": "150xxxx9144",
"openId": "123",
"unionId": "z21HjQliSzpw0Yxxxx",
"stateCode": "86"
}
参考 统一授权登录第三方网站