同步操作将从 狂盗一枝梅/spring-security-oauth-study 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
运行 AuthCenterApplication 程序,测试几种oauth认证模式
最安全的一种模式。一般用于client是Web服务器端应用或第三方的原生App调用资源服务的时候。因为在这种模式中access_token不会经过浏览器或移动端的App,而是直接从服务端去交换,这样就最大限度的减小了令牌泄漏的风险。 该模式下获取token需要分两步走,第一步获取授权码,第二步获取token。
接口地址 http://127.0.0.1:30000/oauth/authorize
请求方式 GET
请求参数
字段名 | 描述 |
---|---|
client_id | 改值必须和配置在clients中的值保持一致 |
response_type | 固定传值code 表示使用授权码模式进行认证 |
scope | 改值必须配置的clients中的值一致 |
redirect_uri | 获取code之后重定向的地址,必须和配置的clients一致 |
请求示例
账号密码分别输入:zhangsan/123,进入授权页面之后点击授权按钮,页面跳转之后获取到code。
在上一步获取到code之后,利用获取到的该code获取token。
接口地址 http://127.0.0.1:30000/oauth/token
请求方式 POST
请求参数
字段名 | 描述 |
---|---|
code | 上一步获取到的code |
grant_type | 在授权码模式,固定使用authorization_code
|
client_id | 改值必须和配置在clients中的值保持一致 |
client_secret | 这里的值必须和代码中配置的clients中配置的保持一致 |
redirect_uri | 获取token之后重定向的地址,该地址可以随意写 |
请求示例
http://127.0.0.1:30000/oauth/token
请求体
code:5Rmc3m
grant_type:authorization_code
client_id:c1
client_secret:secret
redirect_uri:https://www.baidu.com
该模式去掉了授权码,用户登陆之后直接获取token并显示在浏览器地址栏中,参数和请求授权码的接口基本上一模一样,唯一的区别就是
response_type
字段,授权码模式下使用的是code字段,在简化模式下使用的是token字段。一般来说,简化模式用于没有服务器端的第三方单页面应用,因为没有服务器端就无法接收授权码。
接口地址 http://127.0.0.1:30000/oauth/authorize
请求方式 GET
请求参数
字段名 | 描述 |
---|---|
client_id | 改值必须和配置在clients中的值保持一致 |
response_type | 固定传值token 表示使用简化模式进行认证 |
scope | 该值必须和配置的clients中的值一致 |
redirect_uri | 获取code之后重定向的地址,必须和配置的clients一致 |
请求示例
这种模式十分简单,但是却意味着直接将用户敏感信息泄漏给了client,因此这就说明这种模式只能用于client是我 们自己开发的情况下。因此密码模式一般用于我们自己开发的,第一方原生App或第一方单页面应用
接口地址 http://127.0.0.1:30000/oauth/token
请求方式 POST
请求参数
字段名 | 描述 |
---|---|
client_id | 改值必须和配置在clients中的值保持一致 |
client_secret | 改值必须和配置在clients中的值保持一致 |
grant_type | 在密码模式下,该值固定为password
|
username | 用户名 |
password | 密码 |
请求示例
这种模式是最方便但最不安全的模式。因此这就要求我们对client完全的信任,而client本身也是安全的。因此这种模式一般用来提供给我们完全信任的服务器端服务。比如,合作方系统对接,拉取一组用户信息。
接口地址 http://127.0.0.1:30000/oauth/token
请求方式 POST
请求参数
字段名 | 描述 |
---|---|
client_id | 改值必须和配置在clients中的值保持一致 |
client_secret | 改值必须和配置在clients中的值保持一致 |
grant_type | 在密码模式下,该值固定为client_credentials
|
请求示例
http://127.0.0.1:30000/oauth/token?client_id=c1&client_secret=secret&grant_type=client_credentials
接口地址 http://127.0.0.1:30000/oauth/token
请求方式 POST
请求参数
字段名 | 描述 |
---|---|
client_id | 该值必须和配置在clients中的值保持一致 |
client_secret | 该值必须和配置在clients中的值保持一致 |
grant_type | 如果想根据refresh_token换新的token,这里固定传值refresh_token
|
refresh_token | 未失效的refresh_token |
请求示例
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。