开发流程
-
配置回调域名。
-
进入已创建的应用详情页,在基础信息页面可以查看到应用的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"
}
参考 统一授权登录第三方网站