首页 > 编程语言 > 详细

SpringBootSecurity学习(24)前后端分离版之OAuth2.0 应用登记

时间:2019-10-15 19:28:59      阅读:80      评论:0      收藏:0      [点我收藏+]

应用登记

一个应用要求 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 发布!

SpringBootSecurity学习(24)前后端分离版之OAuth2.0 应用登记

原文:https://www.cnblogs.com/guos/p/11679616.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!