第三方联合登录一般可以降低网站的获客成本,所以一般的网站都会做一些联合登录,常用的就是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给用户在你的站内创建一个账号,设置登录token,认为用户已经登录了。

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

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

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

QQ微信微博联合登录流程总结相关推荐

  1. java qq微信微博第三方登录界面_android 实现第三方登录(微博、微信、QQ登录)

    [实例简介]此案例是演示案例,大家可以看到Bmob的第三方登录和信息获取如何工作的 实现了 qq.微信.微博的 第三方登录功能 [实例截图] [核心代码] package com.bmob.demo. ...

  2. 安卓三方登录趟坑,QQ,微信,微博,Twitter,Facebook,Instagram

    前言 最近给app加入三方登录,由于比较多,所以就用的友盟统一登录,会比一个一个配置方便点 正文 先说QQ,微信,微博: 国内QQ,微信,微博三方登录其实还行,并没有太多坑,文档也挺完善的. 但是需要 ...

  3. 实现在App端授权qq/微信/微博登录

    App端登陆相关的SDK需要在manifest中配置: 打开 manifest.json -> App模块权限配置,勾选 OAuth(登陆鉴权). 打开 manifest.json -> ...

  4. Oauth2.0 QQ微信微博实现第三方登陆

    一.写在前面 目前对于大多数的App或Web网站都支持有第三方登陆这个功能,用户可使用 QQ/ 微信/ 微博 帐号快速登录你的网站,降低注册门槛,为你的网站带来海量新用户.最近在新项目上刚好用到了,在 ...

  5. 拾人牙慧篇之———QQ微信的第三方登录实现

    一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现 ...

  6. 微信小程序-微信小程序登录流程(一)

    微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用"触手可及"的梦想,用户扫一扫或搜一下即可打开应用 冷启动: ...

  7. java 微信 qq 登录_拾人牙慧篇之———QQ微信的第三方登录实现

    一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现 ...

  8. 访问量分类统计(QQ,微信,微博,网页,网站APP,其他)

    刚准备敲键盘,突然想起今天已经星期五了,有点小兴奋,一周又这么愉快的结束,又可以休息了,等等..我好像是来写Java博客的,怎么变成了写日记,好吧,言归正传. 不知道大家有没有遇到过这样的需求:统计一 ...

  9. 微信小程序登录流程+介绍wx.login和auth.code2Session

    微信小程序登录流程+介绍wx.login和auth.code2Session 几个核心API和核心字段 wx.login() 调用接口获取登录凭证(code) code2Session 登录凭证校验, ...

最新文章

  1. 什么是XLNet,它为什么比BERT效果好?
  2. 以太坊开发者工具的最新清单
  3. 美国新桥投资集团(Newbridge Capital) [from baike]
  4. ITK:从测量列表创建直方图
  5. PHP面试题:对于用户输入一串字符串$string,要求$string中只能包含大于0的数字和英文逗号,请用正则 表达式验证,对于不符合要求的$string返回出错信息
  6. .NET Core 3.1正式发布,还不赶快升级!
  7. 解决 MyEclipse build workspace 慢,validation javascript 更慢的问题
  8. Cordova iOS WKWebView 整改完美解决方案
  9. 从CTF比赛真题中学习压缩包伪加密与图片隐写术
  10. Linux grep
  11. 如何向水晶报表数据源中的存储过程传参数……
  12. 一篇文章帮你梳理清楚API设计时需要考虑的几个关键点
  13. 一个非常经典的erp教程
  14. 数据质量评价体系(附思维导图)
  15. 学习opencv3 pdf_PDF的虚拟打印机,免费又好用
  16. centos 替换阿里源
  17. 我的春招实习+秋招总结【前端开发】
  18. JQuery解析Json数据填充到表格
  19. python 语音处理工具包AudioSegment的基本使用
  20. 洛谷 P1162填图颜色

热门文章

  1. iview mysql_iview实现国际化 - osc_wws45aot的个人空间 - OSCHINA - 中文开源技术交流社区...
  2. jQuery实现倒计时功能
  3. 老男孩python第九期_python学习之老男孩python全栈第九期_day004知识点总结
  4. 云台山风景区国庆黄金周连续两天游客爆棚
  5. HZAU 1018 Catching Dogs
  6. 聚观早报|特斯拉向第三方电动车开放充电桩;Epic 诉苹果垄断败诉
  7. 1.0 java_Mybatis_oracle基于WEB的仓库管理系统的设计与实现(源码+数据库sql+论文+视频齐全)----库管理系统---源码在底部
  8. 排坑-FAILED: UDFArgumentException The function DECIMAL takes only primitive types
  9. 轻松Java打印预览、Web打印
  10. 让你也体验一把当黑客的感觉:复现了log4j2的漏洞