以百度网盘通过qq登录为例,剖析第三方登录原理
1.用户在百度网盘登录页点击qq登录链接,百度网盘重定向用户的当前链接到qq
2.用户在百度网盘重定向到的qq登录页面,输入账户密码,发送信息到qq
3.qq校验通过后,返回一个code到客户端,此时客户端发送该信息code到百度网盘
code的特点:只能使用一次,有效期短一般为15min,且只能被callback的地址所使用
callback地址:即从哪个链接重定向到的qq登录页面
4.百度网盘接收code信息后,通过百度网盘的服务器,直接去qq服务器获取到一个Token信息
Token信息特点:一个包含qq、头像等信息的加密数据,且有过期时间
5.百度网盘发送Token信息到腾讯服务器,解密获取到对应的qq,头像等信息,并保存到自己的服务器。
数据安全的特点:
1.用户登录成功后,qq返回了一个code信息到客户端:
如果客户端被恶意软件抓包获取到了该code信息,当恶意软件通过code从qq获取对应的用户信息时,通常会出现获取地址和callback地址不符等现象,且在百度网盘使用code会code会自动失效。
2.百度网盘和qq之间通过Token进行数据传输:
恶意软件通常通过客户端抓包来获取数据的,但是对于百度网盘和qq之间的直接通讯是抓不到数据的,除非恶意软件被植入百度网盘的服务器等
OAuth2.0协议
用来授权第三方应用,获取用户数据。
即数据的所有者,通过一个token的方式,来替代password的方式,来时百度网盘获取到登录qq的权限