密码模式

前面介绍了授权码模式和刷新令牌两种获取最新令牌的方法,下面来看一下其它模式。首先看密码模式,我们默认配置的三种模式中其实就包含密码模式的支持:

因此我们启动项目,直接使用密码模式即可,访问地址是:

参数有五个,分别是:

  • grant_type:密码模式值必须为 password

  • username:用户名

  • password:密码

  • client_id:客户端id

  • client_secret:客户端秘钥

访问示例如下:

密码模式适用于用户高度信任的情况,只有高度信息才能传用户名密码,谨慎使用。

隐藏模式

有些web应用是纯前端的应用,需要允许授权服务直接向前端颁发令牌。这种方式没有授权码这个中间步骤,所以称为(授权码)"隐藏式"(implicit)。访问链接示例如下:

可以看到这种方式比授权码模式多了一个scope参数,在使用隐藏模式之前,需要授权服务支持隐藏模式,就需要在授权类型中加上 implicit:

然后将上面的链接输入到浏览器,会出现登录页面,登录成功后,链接中会直接出现令牌:

注意,令牌的位置是 URL 锚点(fragment),而不是查询字符串(querystring),这是因为 OAuth 2.0 允许跳转网址是 HTTP 协议,因此存在"中间人攻击"的风险,而浏览器跳转时,锚点不会发到服务器,就减少了泄漏令牌的风险。

凭证模式

最后一种方式是凭证式(client credentials),适用于没有前端的命令行应用,即在命令行下请求令牌。请求地址如下:

请求前,先在授权类型中配置凭证模式:

请求结果示例:

这种方式给出的令牌,是针对第三方应用的,而不是针对用户的,即有可能多个用户共享同一个令牌。

代码地址: https://gitee.com/blueses/spring-boot-security 28

本文由博客一文多发平台 OpenWrite 发布!

最新文章

  1. linux shell脚本常用语句
  2. zk 隐藏网页文件后缀
  3. TCP/IP 协议:IP 协议
  4. media query学习笔记
  5. ARM中C和汇编混合编程及示例(转)
  6. MongoDB C#驱动中Query几个方法 (转)
  7. node io.sockt 聊天应用
  8. Linux 基础 —— RPM
  9. osvdb
  10. HDU_2044——蜜蜂走蜂房,递推
  11. 《Effective C++》:条款48:理解力template 元编程
  12. 微信5.0 Android版飞机大战破解无敌模式手记
  13. Java使用javax.mail.jar发送邮件并同意发送附件
  14. 兔子--Fragment与ViewPager要切换滑动效果
  15. The 2014 ACMICPC Asia Regional Shanghai Online
  16. [NOI赛前训练]——专项测试3·数学
  17. 协同过滤的R语言实现及改进
  18. Alice and Bob HDU - 4111 (SG函数)
  19. lnmp环境里安装mssql及mssql的php扩展
  20. ROM、RAM、CPU、CACHE、FLASH的区别

热门文章

  1. 【JavaScript】吃饱了撑的系列之JavaScript模拟多线程并发
  2. 从一道看似简单的面试题重新理解JS执行机制与定时器
  3. 《即时消息技术剖析与实战》学习笔记7——IM系统的消息未读
  4. 小斌之SpringCloud 开发某某交易所
  5. Linux 笔记 - 第十六章 LNMP 之(一) 环境搭建
  6. 网站启动,报编译错误:类型“ASP.global_asax”同时存在两个文件夹的问题
  7. BOM之定时器
  8. JavaScript之基本概念(二)
  9. Java 从入门到进阶之路(六)
  10. Tomcat+Nginx+Linux+Mysql部署豆瓣TOP250的项目到腾讯云服务器