SpringBoot - OAuth2第三方登录之新浪微博登录

之前写过一篇OAuth2 - 第三方登录之微信登录,但是微信的开放平台的资质需要有公司/企业才能注册。如果是个人的话,可以使用其他个人开发者就可以使用的。比如QQ、新浪微博。
QQ的话,需要审核之后才能使用,需要手持身份证照,且需要创建应用需要备案的域名并应用通过审核才能用。而微博的话,在开发期间使用无需审核就可以使用。

微博开放平台 - 创建应用

微博 - 开放平台地址

1、登录之后选择网站接入

在这里插入图片描述

2、完善个人开发者信息

在这里插入图片描述

3、创建应用

创建自己要使用微博登录功能的应用。
在这里插入图片描述

4、设置回调地址

即登录授权成功之后的回调地址
在这里插入图片描述

5、添加测试用户

测试用户即微博用户,输入微博昵称即可。
在这里插入图片描述
在开发阶段无需审核,设置完上述内容即可使用。
在这里插入图片描述

微博开放平台 - 登录流程体验

1、开发文档,选择OAuth2.0,并找到Web网站的授权

微博开发平台 - 开发文档
在这里插入图片描述
在这里插入图片描述

2、根据文档进行操作
①引导需要授权的用户到如下地址:
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI

该地址中有两个替换的参数

client_id:即App Key

在这里插入图片描述

redirect_uri:即回调地址

在这里插入图片描述
访问该地址即跳转到微博登录页面:
在这里插入图片描述

②如果用户同意授权,页面跳转至YOUR_REGISTERED_REDIRECT_URI?code=CODE

YOUR_REGISTERED_REDIRECT_URI 即是回调地址。
在这里插入图片描述

③换取Access Token

通过返回的code码去换取Access Token,只有获取了Token才能为所欲为。

https://api.weibo.com/oauth2/access_token?client_id=YOUR_CLIENT_ID&client_secret=YOUR_CLIENT_SECRET&grant_type=authorization_code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI&code=CODE

这是一个POST请求,在体验这个流程的时候可以通过postman来进行操作。
该地址中有四个替换的参数:

client_id:即App Key
client_secret:即App Secret
redirect_uri:回调地址
code:登录成功之后,地址栏返回的code值

在这里插入图片描述
换取成功返回的JSON结果:
在这里插入图片描述

④使用获得的Access Token调用API

获取到token之后,就可以凭此调用其他接口(有权限的接口)。
在这里插入图片描述
测试 - 获取用户信息:
在这里插入图片描述

SpringBoot整合新浪微博登录

在这里插入图片描述

1、引导到登录页面
https://api.weibo.com/oauth2/authorize?client_id=YOUR_CLIENT_ID&response_type=code&redirect_uri=YOUR_REGISTERED_REDIRECT_URI
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
    <meta charset="UTF-8">
    <title>登录页面</title>
</head>
<body>
    <h1>登录页面</h1>
    <a href="https://api.weibo.com/oauth2/authorize?client_id=AppKey(应用id)&response_type=code&redirect_uri=回调地址">新浪微博 - 立即登录</a>
</body>
</html>
2、回调地址

登录授权成功之后,会跳转到回调地址,并且附带一个code。
因为client_secret,也就是AppSecret不能外泄,所以需要在Java代码内部进行操作。
创建一个Controller作为回调跳转的地址,并且接受code,使用code去交换access_token,其中access_token也是不能外泄的
因为在Java代码中需要发送请求,所以需要一个HttpsUtils工具类

/**
* HttpUtils请从
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/src/main/java/com/aliyun/api/gateway/demo/util/HttpUtils.java
* 或者直接下载:
* http://code.fegine.com/HttpUtils.zip
*
* 下载相应的依赖请参照
* https://github.com/aliyun/api-gateway-demo-sign-java/blob/master/pom.xml
* 相关jar包(非pom)直接下载:
* http://code.fegine.com/aliyun-jar.zip
*/

HttpUtils要用到的依赖:

<dependency>
    <groupId>org.apache.commons</groupId>
    <artifactId>commons-lang3</artifactId
  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值