Java实现QQ、微信、新浪微博第三方登陆

2022年05月12日 阅读数:5
这篇文章主要向大家介绍Java实现QQ、微信、新浪微博第三方登陆,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。

   对于大多数的网站、APP都有第三方登陆这个功能,本身也作过几回,最近作的passport项目又用到了第三方登陆,因此特地总结了一下关于第三方登陆的实现,并拿出来与你们一同分享:java

三个开放平台注册帐户获取AppKey和AppSecretjson

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

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

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

1、QQ互联网站

     申请互联审核经过后建立网站应用,以下图:ui

 

点击查看APPID和APPkey3d

 

Step1:获取Authorization Codecode

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

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

 

2、微信互联

申请互联审核经过后建立网站应用,以下图:

微信不开发平台不保存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,从而致使没法获取到须要用户受权才容许得到的数据和基础功能。

3、新浪微博互联

先申请应用

第一步:请求用户受权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
来源:简书
著做权归做者全部。商业转载请联系做者得到受权,非商业转载请注明出处。