Java实现QQ、微信、新浪微博第三方登录
对于大多数的网站、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、微信、新浪微博第三方登录相关推荐
- java 微信 qq 登录_拾人牙慧篇之———QQ微信的第三方登录实现
一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现 ...
- 拾人牙慧篇之———QQ微信的第三方登录实现
一.写在前面 关于qq微信登录的原理之流我就不一一赘述了,对应的官网都有,在这里主要是展示我是怎么实现出来的,看了好几个博客,有的是直接复制官网的,有的不知道为什么实现不了.我只能保证我的这个是我实现 ...
- 调用QQ/微信/新浪微博 实现登录
调用QQ/微信/新浪微博的第三方登录接口(开发者端口) 官方文档写的很明确了,不过在这里总结一下,方便小白了解下具体接入流程和情况 总体大致流程: 其中: 1.微信登录可省去获取用户标识ID这一步,获 ...
- java qq微信微博第三方登录界面_android 实现第三方登录(微博、微信、QQ登录)
[实例简介]此案例是演示案例,大家可以看到Bmob的第三方登录和信息获取如何工作的 实现了 qq.微信.微博的 第三方登录功能 [实例截图] [核心代码] package com.bmob.demo. ...
- java实现QQ微信扫码登录
有很多网站都需要实现qq,微信登录 1.准备工作 微信需要先在微信开放平台进行注册(https://open.weixin.qq.com/),并认证一个网站应用. qq需要访问 https://con ...
- java集成企业微信完成授权登录
java集成企业微信完成授权登录 文章目录 前言 一.背景 二.使用步骤 1.前端请求链接获取Code 2.后端接收Code,请求微信链接完成返回用户信息 总结 前言 java集成企业微信完成授权登录 ...
- iOS微信实现第三方登录的方法
这篇文章主要介绍了iOS微信第三方登录实现的全过程,一步一步告诉大家iOS微信实现第三方登录的方法,感兴趣的小伙伴们可以参考一下 一.接入微信第三方登录准备工作.移动应用微信登录是基于OAuth2.0 ...
- 微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众
微信网页第三方登录原理 微信开放平台和公众平台的区别 1.公众平台面向的时普通的用户,比如自媒体和媒体,企业官方微信公众账号运营人员使用,当然你所在的团队或者公司有实力去开发一些内容,也可以调用公众平 ...
- Yii2 使用 QQ 和 Weibo 第三方登录源码
我们社区在 yii2-authclient 多次升级后,登录异常.一直想寻求一种通用的方法,尽量不重写 OAuth2, BaseOAuth 以及 OAuthToken 类, 所以本次直接在 initU ...
- U盟用新浪微博第三方登录 文件不存在 c8998 解决办法
PlatformConfig.setSinaWeibo昨天发现一个新浪微博第三方登录的时候始终报 "文件不存在(C8998)",网上查了很多 都没有找到确切的解决办法,在 Pla ...
最新文章
- linux modprobe 内核模块加载卸载命令 简介
- React(0.13) 定义一个动态的组件
- 混合式app php怎么打包,如何实现混合 App Web 资源的打包与增量更新
- mysql 临时表 限制_Mysql临时表
- FFmpeg命令的几种应用
- CFS中一些调度参数的实现原理
- HttpClient ip直连域名问题那些事
- java通讯录 批量生成 .vcf文件, .csv文件批量生成 .vcf,手机自动导入
- facenet lfw训练
- 配电网重构知识及matlab实现
- 如果面试遇到临时面试官,怎么办?
- SHU-“盛大游戏杯”第15届上海大学程序设计联赛夏季赛暨上海高校金马五校赛-K-购买装备
- 索尼PS VR2体验:硬件素质不错,高质量游戏是关键
- 三星自定义状态栏_极简操作无需root隐藏S8导航栏和状态栏
- PHP之自定义阿里云客服在线访客名片
- 7-5 谷歌的招聘 (15 分)
- 频谱聚类|拉普拉斯矩阵
- PAT L3-011 直捣黄龙
- php微信商城和微信小程序源码【CRMEB】
- vue中style scoped属性的作用和原理以及scoped穿透