QQ扫码登录原理
最近,在项目中使用QQ扫码登录功能,去学习了QQ扫码登录原理,下面就自己总结出来的扫码登录流程!
如果要清楚地认知到QQ扫码登录原理,首先就要认识Token的认证机制!这里就不进行谈Token的认证机制!刚兴趣的小伙伴可以自己搜一下Token认证机制!
先上,QQ扫码的路程图:
如果平时留心的哇,就会发现扫码分为以下三个方面:待扫描、已扫描待确认、已确认,这三个阶段。
首先,PC端会发送生成二维码的请求去服务端,请求生成二维码返回给PC端。在这里可以理解成服务端生成二维码是唯一的UUID,通俗的说就是二维码ID与PC设备信息关联起来了!
接着,在PC展示出二维码,并且在PC会启动一个定时器,轮训查询二维码的状态。如果二维码没被移动端扫描,过一段时间后二维码就会失效了!
然后,如果移动端进行扫码之后,在移动端就会确认授权等操作!就是移动获取二维码的ID,将手机端登录凭证Token和二维码ID作为参数发送给服务端!此时PC的定时器轮询,就会发现二维码已扫描待确认了!
接着,服务器就会发生一串的access_token以及token的过期时间信息,返回给客户端,在此之前,PC端上的定时器会轮询到二维码已被确认了!凭借access_token等信息可以,服务端获取到了OpenId!
最后,凭借Token就可以去服务端获取相应的数据了!如QQ头像、名字等信息!
务端获取相应的数据了!如QQ头像、名字等信息!
具体的代码的实现,可以参考这篇文章:Go 语言实现 QQ 扫码登陆 | Go 技术论坛 (learnku.com)