获取qq昵称接口_Java 实现 QQ 登陆

本文详细介绍了使用Java实现QQ登录的过程,包括数据库设计、鉴权流程、实名认证和获取accessToken。同时,提到了QQ互联的特大bug及处理方式。还涉及对接微博登录的步骤,如创建应用、获取accessToken和用户信息。文章提供了相关教程链接和注意事项。
摘要由CSDN通过智能技术生成
点击上方 蓝色字体,选择“标星公众号” 优质文章,第一时间送达 0b310c67d632fe6a33a5e4a087de7f93.png 1. 前言 个人网站最近增加了评论功能,为了方便用户不用注册就可以评论,对接了 QQ 和微博这 2 大常用软件的一键登录,总的来说其实都挺简单的,可能会有一点小坑,但不算多,完整记录下来方便后来人快速对接。 2. 后台设计 在真正开始对接之前,我们先来聊一聊后台的方案设计。既然是对接第三方登录,那就免不了如何将用户信息保存。首先需要明确一点的是,用户在第三方登录成功之后,我们能拿到的仅仅是一个代表用户唯一身份的ID(微博是真实 uid ,QQ是加密的 openId )以及用来识别身份的 accessToken ,当然还有昵称、头像、性别等有限资料,对接第三方登录的关键就是如何确定用户是合法登录,如果确定这次登录的和上次登录的是同一个人并且不是假冒的。 其实这个并不用我们特别操心,就以微博登录为例,用户登录成功之后会回调一个code 给我们,然后我们再拿code去微博那换取 accessToken ,如果这个code是用户乱填的,那这一关肯定过不了,所以,前面的担心有点多余。 另外一个问题就是如何和现有用户系统打通,有的网站在用户已经登录成功之后还要用户输入手机号和验证码,或者要用户重新注册账号和密码来绑定第三方账户,感觉这种实现用户体验非常差,碰到这种网站我一般都是直接关掉,都已经登录了还让用户注册,什么鬼!由于我做的是评论功能,我并不希望评论用户和现有用户表打通,所以就不存在这件事了,如果想打通的话,我觉得无非就是登录成功之后默认往老用户表插入一条数据,然后和 OpenUser 表关联起来,判断用户是否登录时把 OpenUser 的鉴权也加进去就OK了。 本文的后台以Java为例。

2.1. 数据库设计

再来说说数据库设计,为了系统的扩展性,我有一个专门的 OpenUser 表用来存放第三方登录用户,主要字段如下: be9081febf92ad38c62602f1d9adfea5.png 这样设计理论上就可以无限扩展了。

2.2. 鉴权流程

这里我只是说说我的方案,把 accessToken 写入cookie肯定是不安全的,因为 accessToken 相当于是第三方网站的临时密码,被别人窃取了就可以随意拿来干坏事了。可以在用户登录成功之后我们自己生成一个token,这样的token即使泄露了顶多就是被人拿来随意评论,损失不大,但是如果accessToken被泄露了,以微博为例,人家可以利用这个 accessToken 随意发微博、删微博、加关注等等,很危险。当然,如果不想token泄露的话也可以通过绑定IP等方式来限制。 鉴权的话就是首先判断cookie中是否有我们自己的token,然后判断是否合法,合法再判断第三方授权是否已过期等等。 QQ登陆

3.1. 实名认证

QQ登录我们对接的是QQ互联,地址:https://connect.qq.com ,首先需要注册成为开发者并实名认证,需要手持身份证照片,具体就不讲了。

3.2. 创建应用

进入应用管理页面(https://connect.qq.com/manage.html#/)创建应用,根据实际需要是创建网站应用还是移动应用,我这里是网站应用:

5c981d69e5371156bd0162e428a993ca.png</

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值