java新浪微博第三方登录_Java实现QQ、微信、新浪微博第三方登录

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

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

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

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

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

一、QQ互联

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

点击查看APPID和APPkey

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Step1:获取Authorization Code

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Step2:通过Authorization Code获取Access Token

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Step3:获取openID

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

Step4:获取qq用户信息

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

二、微信互联

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

第二步:通过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

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

第三步:通过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,从而导致无法获取到需要用户授权才允许获得的数据和基础功能。

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

三、新浪微博互联

先申请应用

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

第一步:请求用户授权code

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

第二步:获取授权token

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

第三步:获取授权用户uid

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

发送GET请求

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

8faaad6e9aec?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值