对于大多数的网站、APP都有第三方登录这个功能,自己也做过几次,最近做的passport项目又用到了第三方登录,所以特意总结了一下关于第三方登录的实现,并拿出来与大家一同分享:

三个开放平台注册账户获取AppKey和AppSecret

QQ互联地址:https://connect.qq.com/intro/login

微信开放平台地址:https://open.weixin.qq.com/

新浪微博开放平台地址:http://open.weibo.com/

一、QQ互联

申请互联审核通过后创建网站应用,如下图:

点击查看APPID和APPkey

Step1:获取Authorization Code

pc获取code地址:https://graph.qq.com/oauth2.0/authorize;获取方式发送HTTP GET请求

Step2:通过Authorization Code获取Access Token

pc获取token地址:https://graph.qq.com/oauth2.0/token,获取方式发送HTTP GET请求

Step3:获取openID

pc 获取openID的地址:https://graph.qq.com/oauth2.0/me,获取方式发送HTTP GET请求

Step4:获取qq用户信息

获取用户信息地址:https://graph.qq.com/user/get_user_info

二、微信互联

申请互联审核通过后创建网站应用,如下图:

微信不开发平台不保存appsecret,申请应用成功时一定要记住

第一步:请求CODE:

第三方使用网站应用授权登录前请注意已获取相应网页授权作用域(scope=snsapi_login),则可以通过在PC端打开以下链接:

https://open.weixin.qq.com/connect/qrconnect?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

若提示“该链接无法访问”,请检查参数是否填写错误,如redirect_uri的域名与审核时填写的授权域名不一致或scope不为snsapi_login。

第二步:通过code获取access_token

通过code获取access_token

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

第三步:通过access_token调用接口

获取access_token后,进行接口调用,有以下前提:

1. access_token有效且未超时;

2. 微信用户已授权给第三方应用帐号相应接口作用域(scope)。

对于接口作用域(scope),能调用的接口有以下:

授权作用域(scope)接口接口说明

snsapi_base/sns/oauth2/access_token通过code换取access_token、refresh_token和已授权scope

/sns/oauth2/refresh_token刷新或续期access_token使用

/sns/auth检查access_token有效性

snsapi_userinfo/sns/userinfo获取用户个人信息

其中snsapi_base属于基础接口,若应用已拥有其它scope权限,则默认拥有snsapi_base的权限。使用snsapi_base可以让移动端网页授权绕过跳转授权登录页请求用户授权的动作,直接跳转第三方网页带上授权临时票据(code),但会使得用户已授权作用域(scope)仅为snsapi_base,从而导致无法获取到需要用户授权才允许获得的数据和基础功能。

三、新浪微博互联

先申请应用

第一步:请求用户授权code

地址:https://api.weibo.com/oauth2/authorize

第二步:获取授权token

地址:https://api.weibo.com/oauth2/access_token

第三步:获取授权用户uid

地址:https://api.weibo.com/oauth2/get_token_info

第四步:根据用户uid获取用户信息

地址:https://api.weibo.com/2/users/show.json

发送GET请求

互联的时候注意创建应用时的设置的回调地址和项目里的回调地址保持一致,不然第一步获取code后接下来就无法回调

作者:yljava
链接:https://www.jianshu.com/p/8faaad6e9aec
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

Java实现QQ、微信、新浪微博第三方登录相关推荐

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

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

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

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

  3. 调用QQ/微信/新浪微博 实现登录

    调用QQ/微信/新浪微博的第三方登录接口(开发者端口) 官方文档写的很明确了,不过在这里总结一下,方便小白了解下具体接入流程和情况 总体大致流程: 其中: 1.微信登录可省去获取用户标识ID这一步,获 ...

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

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

  5. java实现QQ微信扫码登录

    有很多网站都需要实现qq,微信登录 1.准备工作 微信需要先在微信开放平台进行注册(https://open.weixin.qq.com/),并认证一个网站应用. qq需要访问 https://con ...

  6. java集成企业微信完成授权登录

    java集成企业微信完成授权登录 文章目录 前言 一.背景 二.使用步骤 1.前端请求链接获取Code 2.后端接收Code,请求微信链接完成返回用户信息 总结 前言 java集成企业微信完成授权登录 ...

  7. iOS微信实现第三方登录的方法

    这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2.0 ...

  8. 微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众

    微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平 ...

  9. Yii2 使用 QQ 和 Weibo 第三方登录源码

    我们社区在 yii2-authclient 多次升级后,登录异常.一直想寻求一种通用的方法,尽量不重写 OAuth2, BaseOAuth 以及 OAuthToken 类, 所以本次直接在 initU ...

  10. U盟用新浪微博第三方登录 文件不存在 c8998 解决办法

    PlatformConfig.setSinaWeibo昨天发现一个新浪微博第三方登录的时候始终报 "文件不存在(C8998)",网上查了很多 都没有找到确切的解决办法,在  Pla ...

最新文章

  1. linux modprobe 内核模块加载卸载命令 简介
  2. React(0.13) 定义一个动态的组件
  3. 混合式app php怎么打包,如何实现混合 App Web 资源的打包与增量更新
  4. mysql 临时表 限制_Mysql临时表
  5. FFmpeg命令的几种应用
  6. CFS中一些调度参数的实现原理
  7. HttpClient ip直连域名问题那些事
  8. java通讯录 批量生成 .vcf文件, .csv文件批量生成 .vcf,手机自动导入
  9. facenet lfw训练
  10. 配电网重构知识及matlab实现
  11. 如果面试遇到临时面试官,怎么办?
  12. SHU-“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-K-购买装备
  13. 索尼PS VR2体验:硬件素质不错,高质量游戏是关键
  14. 三星自定义状态栏_极简操作无需root隐藏S8导航栏和状态栏
  15. PHP之自定义阿里云客服在线访客名片
  16. 7-5 谷歌的招聘 (15 分)
  17. 频谱聚类|拉普拉斯矩阵
  18. PAT L3-011 直捣黄龙
  19. php微信商城和微信小程序源码【CRMEB】
  20. vue中style scoped属性的作用和原理以及scoped穿透

热门文章

  1. 小米6线刷包php文件格式,小米6官方固件刷机教程_线刷|救砖教程图解
  2. 行为型设计模式:模板模式
  3. 9道微服务面试题,你能回答上来几个?
  4. 【MapGIS精品教程】005:MapGIS中间件的配置与使用
  5. VGG16网络结构图及pytorch 代码实现
  6. 学会Java输入输出流,看这一篇就够了,建议收藏!
  7. 脚本语言和编程语言的比较
  8. windows 一些恶搞的bat小脚本
  9. dm连接mysql_DM数据库JDBC连接
  10. python与乐高ev3结合_利用python语言编程控制LEGO EV3