钉钉统一授权登录第三方网站

开发流程

  1. 配置回调域名

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

      img

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

      img

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

    img

  3. 构造登录页面。

    说明 登录页面在初次校验登录状态时显示。

    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需要是当前用户所在的组织。
    exclusiveLogintrue表示专属帐号登录,展示组织代码输入页。
    exclusiveCorpId开启了专属帐号功能的组织corpId。注意exclusiveLogin为true时该参数存在意义,表示直接进入该组织的登录页。

    img

    img

  4. 登录后,打开授权页面。

    说明 首次授权时,显示授权页面

  5. 单击同意,触发以下流程。

(1)点击同意后,钉钉在url返回authCode。如下图所示。

img

(2)根据authCode,调用服务端获取用户token接口,获取用户个人token。

(3)根据用户个人token,调用获取用户通讯录个人信息接口,实现获取用户个人信息。

{
	 "nick": "zhangsan",
	 "avatarUrl": "https://xxx",
	 "mobile": "150xxxx9144",
	 "openId": "123",
	 "unionId": "z21HjQliSzpw0Yxxxx",
	 "stateCode": "86"
	}

参考 统一授权登录第三方网站

对于使用Spring Boot实现钉钉第三方登录,你可以按照以下步骤进行操作: 1. 在钉钉开放平台注册应用:首先,在钉钉开放平台(https://open-dev.dingtalk.com/)上创建一个新的应用。在创建应用时,选择网页应用类型,并填写相关信息,如应用名称、应用描述、回调URL等。 2. 获取AppKey和AppSecret:创建应用成功后,你将获得一个AppKey和AppSecret,这是与钉钉服务器进行交互的凭证。 3. 配置Spring Boot项目:在你的Spring Boot项目中,添加相应的依赖,如钉钉SDK(dingtalk-sdk-java),以便与钉钉服务器进行交互。你可以在项目的pom.xml文件中添加以下依赖: ```xml <dependency> <groupId>com.dingtalk</groupId> <artifactId>dingtalk-sdk-java</artifactId> <version>2.0.2</version> </dependency> ``` 4. 实现登录逻辑:编写相应的代码来处理钉钉登录逻辑。可以创建一个Controller来处理登录请求,然后在登录请求中调用钉钉SDK提供的接口来获取用户信息。 ```java @RestController public class DingTalkLoginController { @Autowired private DingTalkClient dingTalkClient; @GetMapping("/login") public String login(@RequestParam("code") String code) { // 使用钉钉SDK获取用户信息 DingTalkClient.UserInfo userInfo = dingTalkClient.getUserInfo(code); // 在这里进行用户信息的处理和登录逻辑 return "登录成功"; } } ``` 5. 配置回调URL:在钉钉开放平台上,将回调URL配置为你的Spring Boot项目中的登录接口URL,例如:http://localhost:8080/login。 6. 测试登录:启动你的Spring Boot应用,并在浏览器中访问钉钉登录页面,授权后将跳转到你的回调URL,并携带授权码(code)。在回调URL中,将获取到的code参数传递给登录接口进行处理。 以上是一个简单的实现钉钉第三方登录的步骤,你可以根据自己的需求进行适当的调整和扩展。注意保护敏感信息,如AppKey和AppSecret,不要直接暴露在代码中或公开可见的地方。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Wufucks

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值