应用登记

一个应用要求 OAuth 授权,必须先到对方网站登记,让对方知道是谁在请求。举个例子,下面是github的登记页面:

下面我们来自己做一个简单的应用登记,根据表 oauth_client_details 的结构,我们登记的时候只填写应用名称和回调地址即可,其它的字段如下:

  • client_id:使用UUID生成

  • client_secret:使用UUID生成,并使用 BCryptPasswordEncoder 加密

  • scope:默认all

  • authorized_grant_types :默认 authorization_code,password,refresh_token 三个

下面是sql语句:

Service中的方法:

接口定义:

下面来测试接口:

返回了预期中的客户端id和秘钥。来看一下数据库:

现在我们就可以使用新登记的应用来请求令牌了:

令牌请求结果:

状态state字段

为了防止CSRF攻击,在申请授权码这一步时,可以在参数中增加一个state状态参数,这个参数是由客户端生成的随机字符串,授权服务会原封不动的返回这个参数和参数值,用户进行授权客户端的请求时也会携带此字符串用于比较。如下:

返回结果如下:

如果传递过去的和回来的不一样,可以认为不合法。

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

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

最新文章

  1. kd树和knn算法的c语言实现
  2. Oracle 中 decode 函数用法(转)
  3. mxnet的python包导入的前前后后
  4. [转]CPU的位数与操作系统的位数的区别
  5. JS 防止表单重复提交
  6. event.preventDefault()
  7. 用Windows Live Writer发来
  8. 关于A*寻路算法的认识
  9. Handsontable通用方法
  10. Installing on CentOS/RHEL / KB forum / Ajenti
  11. PHP date()函数格式与用法汇总
  12. IOS学习5——属性与成员变量
  13. 《java入门第一季》之LinkList模拟桟结构案例
  14. Linux下MySQL的数据文件存放位置
  15. 机器学习基石9-Linear Regression
  16. 【C#】判断字符串中是否包含指定字符串,contains与indexof方法效率问题
  17. Spark大型电商项目实战-及其改良(2) RDD优化效果不稳定的真正原因
  18. win10重装win7
  19. ceph 生成rpm包
  20. CLR 关于强命名程序集 .

热门文章

  1. Java连载28-内存分析
  2. 了解css中px、em、rem的区别并使用Flexible实现vue移动端的适配
  3. Salesforce LWC学习(六) @salesforce & lightning/ui*Api Reference
  4. 阿里短信封装SDK TP3.2
  5. Java SSM三端分离开发在线教育平台实战视频教程
  6. HashMap面试题
  7. (转)java程序调用内存变化过程分析(详细)
  8. s-s-r + 锐-速
  9. Winform中设置ZedGraph曲线图的水平与竖直参考线
  10. Golang 入门系列(十五)如何理解go的并发?