基于spring-security-oauth2认证授权服务介绍与使用(二)
- 1、授权流程及示意图
- 2、测试oauth2-server认证授权中心
- 2.1、采用授权码authorization_code模式
- 2.1.1、 获取Authorization Code
- 2.1.2、 通过Authorization Code获取Access Token
- 2.2、采用密码模式
- 3、测试oauth2-resources-order获取资源服务器的数据
前言】OAuth: OAuth(开放授权)是一个开放标准,允许用户授权第三方网站访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的所有内容。
1、授权流程及示意图
2、测试oauth2-server认证授权中心
思路:
授权码模式:先获取到 授权码[Authorization Code] -->通过授权码获取access_token --> 此时已授权带着access_token 去访问接口
密码模式:可直接一个请求获取到access_token --> 此时已授权带着access_token 去访问接口
2.1、采用授权码authorization_code模式
2.1.1、 获取Authorization Code
请求方式:get
请求参数[必填]:response_type、client_id、redirect_uri
请求URL:http://localhost:9090/oauth/authorize
完整URL:http://localhost:9090/oauth/authorize?response_type=code&client_id=client_1&redirect_uri=http://www.baidu.com
访问后跳转到如下图地址登录后–> 回调地址【http://www.baidu.com】
**注意:**此处如果出现一直登录失败,可以考虑换个用户名密码登录后重启服务再登录测试
选择Approve后 --> 点击按钮即可进入回调地址页面
即授权码为:yMfKsK 【注】:授权码只能使用一次
2.1.2、 通过Authorization Code获取Access Token
请求方式:get
请求参数[必填]:grant_type、client_id、client_secret、code、redirect_uri
请求URL:http://localhost:9090/oauth/token
完整URL:http://localhost:9090/oauth/token?grant_type=authorization_code&client_id=client_1&client_secret=123456&code=6Xt0Dz&redirect_uri=http://www.baidu.com&scope=all
获取的access_token:1a0eb010-b6a6-4ac7-a3d9-37b0d90517ea
2.2、采用密码模式
密码模式相对简单点,直接使用postman访问了。
请求方式:post
请求参数[必填]:grant_type、username、password、client_id、client_secret
请求路径:http://localhost:9090/oauth/token
获取到access_token:1a0eb010-b6a6-4ac7-a3d9-37b0d90517ea
3、测试oauth2-resources-order获取资源服务器的数据
如我们要将获取订单信息的简单接口对外开放,提供数据给其他对外服务器访问,就需要获取 access_token才能访问。
http://localhost:9091/api/order/getOrder?Authorization=bearer 1a0eb010-b6a6-4ac7-a3d9-37b0d90517ea