(1)申请授权码

请求认证服务获取授权码:

Get请求:
http://localhost:9001/oauth/authorize?
client_id=leon&response_type=code&scop=app&redirect_uri=http://localhost

参数列表如下:

client_id:客户端id,和授权配置类中设置的客户端id一致。
response_type:授权码模式固定为code
scop:客户端范围,和授权配置类中设置的scop一致。
redirect_uri:跳转uri,当授权码申请成功后会跳转到此地址,并在后边带上code参数(授权码)

首先跳转到登录页面:

输入账号和密码,点击Login。 Spring Security接收到请求会调用UserDetailsService接口的loadUserByUsername方法查询用户正确的密码。 当前导入的基础工程中客户端ID为leon,秘钥也为leon即可认证通过。

接下来进入授权页面:

点击Authorize,接下来返回授权码: 认证服务携带授权码跳转redirect_uri,code=k45iLY就是返回的授权码

(2)申请令牌

拿到授权码后,申请令牌。 Post请求:http://localhost:9001/oauth/token 参数如下:

grant_type:授权类型,填写authorization_code,表示授权码模式
code:授权码,就是刚刚获取的授权码,注意:授权码只使用一次就无效了,需要重新申请。
redirect_uri:申请授权码时的跳转url,一定和申请授权码时用的redirect_uri一致。 

此链接需要使用 http Basic认证。 什么是http Basic认证? http协议定义的一种认证方式,将客户端id和客户端密码按照“客户端ID:客户端密码”的格式拼接,并用base64编 码,放在header中请求服务端,一个例子: Authorization:Basic WGNXZWJBcHA6WGNXZWJBcHA=WGNXZWJBcHA6WGNXZWJBcHA= 是用户名:密码的base64编码。 认证失败服务端返回 401 Unauthorized。

以上测试使用postman完成:

http basic认证:

客户端Id和客户端密码会匹配数据库oauth_client_details表中的客户端id及客户端密码。

点击发送: 申请令牌成功

返回信如下:

access_token:访问令牌,携带此令牌访问资源
token_type:有MAC Token与Bearer Token两种类型,两种的校验算法不同,RFC 6750建议Oauth2采用
Bearer Token(http://www.rfcreader.com/#rfc6750)。
refresh_token:刷新令牌,使用此令牌可以延长访问令牌的过期时间。
expires_in:过期时间,单位为秒。
scope:范围,与定义的客户端范围一致。
jti:当前token的唯一标识

授权码模式-获取令牌相关推荐

  1. oauth2使用授权码模式(authorization code)获取access_token

    oauth2获取access_token的几种方式: 简化模式(implicit):在redirect_url中传递access_token,oauth客户端运行在浏览器中. 密码模式(passwor ...

  2. Apache Oltu 实现 OAuth2.0 服务端【授权码模式(Authorization Code)】

    要实现OAuth服务端,就得先理解客户端的调用流程,服务提供商实现可能也有些区别,实现OAuth服务端的方式很多,具体可能看 http://oauth.net/code/ 各语言的实现有(我使用了Ap ...

  3. OAuth2.0授权码模式学习

    OAuth2.0授权码模式学习 四种授权方式 1,授权码模式 2,简化模式 3,密码模式 4,客户端模式 授权码模式 四种授权模式中最完成,最严密的授权. (1)用户访问客户端,后者将前者导入认证服务 ...

  4. IdentityServer4系列 | 授权码模式

    一.前言 在上一篇关于简化模式中,通过客户端以浏览器的形式请求「IdentityServer」服务获取访问令牌,从而请求获取受保护的资源,但由于token携带在url中,安全性方面不能保证.因此,我们 ...

  5. OAuth2.0授权协议与客户端授权码模式详解

    本文来重点讲解下OAuth2.0授权协议与客户端授权码模式 文章目录 什么是OAuth协议 交互过程 客户端授权模式 授权码模式 简化模式 密码模式 客户端模式 接入公司内部系统 后台管理系统 前台业 ...

  6. OAuth2.0授权码模式原理与实战

    OAuth2.0是目前比较流行的一种开源授权协议,可以用来授权第三方应用,允许在不将用户名和密码提供给第三方应用的情况下获取一定的用户资源,目前很多网站或APP基于微信或QQ的第三方登录方式都是基于O ...

  7. 前后端分离Oauth2.0 - springsecurity + spring-authorization-server —授权码模式

    序言 对于目前有很多的公司在对旧的web工程做重构,拆分服务,使用前端vue,后端springboot微服务,重构的要点之一是认证授权框架的选型. 对于原有的 spring-security-oaut ...

  8. Oauth2系列2:授权码模式

    目录 传送门 再次重申oauth2的定义 定义 作用 标准授权码流程 4个参与角色 资源拥有者 客户端 授权服务 受保护资源 授权码流程 引导授权 获取code 用授权码code换取令牌token 返 ...

  9. (七)Spring Security (spring-cloud-starter-oauth2)应用详解------认证授权服务------授权码模式和密码模式

    OAuth2.0介绍 OAuth(开放授权)是一个开放标准,允许用户授权第三方应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方应用或分享他们数据的所有内容.OAuth2. ...

最新文章

  1. sql server 2008手工修改表结构,表不能保存的问题与解决
  2. python 文本框内容变化_jquery文本框内容改变事件
  3. 【中级软考】面向对象分析包含哪几个活动?
  4. azure_Azure ML算法备忘单
  5. 学会阅读硬件的原理图、数据手册大全
  6. iPhone UITableViewCell如何滚动到视图顶端。
  7. Azkaban WebApi 调用
  8. feign调用多个服务_spring cloud各个微服务之间如何相互调用(Feign、Feign带token访问服务接口)...
  9. 腾讯起诉西瓜视频直播《王者荣耀》;人人车否认破产;苹果人事大变动! | 极客头条...
  10. 3.0 mysql配置讲解
  11. python缩进块是什么_python中缩进是用来做什么的
  12. 手动解除浏览器跨域限制
  13. Asp.net页面生命周期详解任我行(1)-小试牛刀,编写页面代码
  14. Matlab 编程 《计算流体力学基础及应用(约翰D安德森)》 亚声速-超声速等熵喷管流动CFD解法 拉瓦尔喷管 守恒形式方程解法
  15. mongodb与mysql优缺点
  16. 应用Matlab小波变换工具箱进行图像压缩
  17. 微信公众号文章音视频下载的几种办法-涵盖PC端和手机端
  18. 如何将excel表格导入matlab,将Excel数据导入MATLAB中的方法
  19. alert弹框DeprecationWarning
  20. java版 设计一个程序, 输入整数l, 求边长为l的正方形面积, 比直径为l的圆形面积大多少.

热门文章

  1. ListCtrl添加右键菜单(ListCtrl类里编辑,给ListCtrl 发送NM_RCLICK消息)
  2. 单车家族 结对项目二
  3. 大话设计模式—桥接模式
  4. Pure-ftpd服务安装及虚拟用户设置
  5. 开发者必备Docker命令
  6. vuejs构建的单页面应用history模式子页面微信分享在iOS中遇到的问题
  7. python基础-------python2.7教程学习【廖雪峰版】(二)
  8. 【转贴】pentaho4.5汉化攻略及汉化文件
  9. 视频:参加ZDNet《小崔说事》谈知识管理
  10. Java循环添加文件_java – 使用jGit循环提交文件