java钉钉微信qq扫码登录

本文介绍了在集成第三方接口时,尤其是微信、钉钉和QQ的接口过程中,开发者需要注意的要点,包括账号申请策略、接口限制条件(如并发量、请求量和防刷机制)、openId和unionId的使用以及数据库设计,强调了安全性和隐私保护的重要性。

概述

第三方接口其实比较简单,按照文档来操作即可,代码也就那点,最费时间的反而是在对接系统的账号的申请上,不建议个人申请很麻烦,还是让公司运维申请企业账号。

作为一名合格的开人人员,不仅仅是把第三方接口调通拿到你想要的数据就行,对接第三方接口需要注意的反而实他们的接口限制条件,这些不注意的反而会成为系统的卡点(系统用户量很少并发很少可以忽略)。

比如并发量和请求量,这些限制条件是否满足系统需求,接口防刷也需要考虑,第三方的接口请求量一般是有限制的,不注意的话一下子把你和个月的请求数给刷完了。

主要步骤就是:

官网文档:
QQ对接
微信对接
钉钉对接

1、授权

前端页面获取AppId和回调地址组装二维码,用户去微信/钉钉/qq扫码授权页面,用户授权后会自动跳转到我们的回调地址并携带授权码。

2、获取openId

前端传入授权码调用后端接口,后端根据授权码调用微信/qq/钉钉的接口获取用户信息中的openId

3、关联用户完成登录操作

根据openId查询用户授权绑定表,如果存在,直接后台生成对应用户的我们系统的token给前端,完成登录操作。

如果没有,可能有两种情况需要区分,第一种是用户不存在,第二种是用户存在,但是没有绑定过,我们不知道openId对应我们系统的哪个用户,需要页面再次引导用户输入手机号信息判断用户手否存在,如果不存在让用户去注册页面注册,实现注册并绑定,如果存在就登录并绑定。

很久之前第二步获取钉钉/微信/qq用户信息的时候,是可以拿到手机号的,但为了安全性和隐私性早就不会返回这种信息了,所以我们只能依赖openId或者unionId来绑定用户。

数据库设计:

CREATE TABLE `user_auth_bind` ( `unid` varchar(50) NOT NULL COMMENT '主键id',
  `user_code` varchar(50) NOT NULL COMMENT '用户id',
  `auth_unid` varchar(255) NOT NULL COMMENT '授权方唯一id',
  `auth_type` varchar(10) NOT NULL COMMENT '授权类型,wx:微信;dd:钉钉;qq: QQ ',
  `business_type` varchar(10) NOT NULL COMMENT '业务类型,区分多个系统使用',
  PRIMARY KEY (`unid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='第三方登录授权绑定表'

后端核心代码实现:

<dependency>
    <groupId>com.aliyun</groupId>
    <artifactId>dingtalk&
评论 4
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值