QQ微信微博联合登录流程总结

来源:互联网 发布:淘宝衣服搭配在哪里 编辑:程序博客网 时间:2024/06/05 07:11

第三方联合登录一般可以降低网站的获客成本,所以一般的网站都会做一些联合登录,常用的就是QQ、微信、微博了,下面简单的介绍一下这些联合登录的方法。

一号店QQ联合登录链接

看了一号店的QQ登录源码可知,点击图标直接访问的是这个链接
https://passport.yhd.com/qq/login.do?tp=2.0.0.0.0.LWyye4h-10-C`toe&ti=H2H3VT
它首先请求的是自己网站的请求,后面那两个参数应该没用,大家自己项目可以不用加,不过抓包能看出来它在服务端做了一个重定向指向了腾讯的QQ授权登录页面
https://graph.qq.com/oauth2.0/authorize?response_type=code&client_id=100234077&redirect_uri=https://passport.yhd.com/qq/callback.do&scope=get_user_info&state=6172a6f6f311570fe739e96be57b6a67

这里根据QQ的联合登录文档就能知道重定向传递的参数都是干什么了。。文档

这里一号店只申请了昵称头像性别的权限,一般都会同意的。

接下来就是QQ的重定向了,QQ自己到了这个请求。
https://graph.qq.com/oauth/show?which=Login&display=pc&response_type=code&client_id=100234077&redirect_uri=https://passport.yhd.com/qq/callback.do&scope=get_user_info&state=6172a6f6f311570fe739e96be57b6a67

这里其实就能看出一号店希望用户在点击授权登录之后访问的链接,https://passport.yhd.com/qq/callback.do
但是当QQ回调你方法的时候就成了这样
https://passport.yhd.com/qq/callback.do?code=78DF205E46BFECE1D22D31FD77BFD925&state=8625864ecaa9b8424aa40a7e12b4cdb9

在这里QQ加上了一个code参数和state参数,code是用来获取token值的,只有10分钟有效期,state参数是让你校验你的请求有没有被篡改,如果被篡改,你得有相应的处理。在这个回调方法里,我们得按照QQ联合登录的文档用申请QQ登录所分发的appid和appkey来获取token,
文档

获取完token,你就得按文档再根据token去获取用户的openId

获取openId

得到了用户的openId之后,你就可以获取之前授权可以得到的用户信息了 其他用户信息接口文档

获取用户信息

当走到这里时,你已经得到了用户的openId和其他的用户信息,应为openId是唯一的,所以不可能重复,这时候整个联合登录就已经走完了。你可以根据openId给用户在你的站内创建一个账号,设置登录token,认为用户已经登录了。

QQ联合登录说的这么清楚了,其实微信联合登录也是这个套路,具体看文档调接口就可以了
微信联合登录
微信联合登录查询用户信息

如果你的微信开放平台下有多个应用,你可以用appid+unionid的形式来保证用户id的唯一性。

微博联合登录流程也大体差不多,详情请看微博联合登录文档

0 0
原创粉丝点击