spring security oauth2_SpringSecurity,oauth2.0,SpringSocial第三方登录及jwt验证(3)

8672bba74fe45da91d17afac30f4f34d.png

上一篇跳转地址

看知道:SpringSecurity,oauth2.0,SpringSocial第三方登录及jwt验证(2)​zhuanlan.zhihu.com
19f2c0b0549473f5c21cc83530e7979b.png

下面讲的主要是token的生成,以及验证用户和验证用户权限的一些代码

43902f568e8149be38bccead467c1733.png

我们先来讲一下普通的token生成:

首先就是要实现oauth2认证服务器,只要在类上加上@EnableAuthorizationServer这个注解即可,我们需要重新编写我们自己的认证服务器,就要继承AuthorizationServerConfigurerAdapter这个父类重新里面的方法

@Configuration

重写第一个Config是把验证用户的方法给换成自己的验证方法,以及将token生成后存进redis。第二个就是解决一个springSecurity在最新版升级后,默认把之前的明文密码方式给去掉了的一个报错,第三个就是客户端的一些配置,就是会有哪些系统来访问我们这些应用,这里我直接通过数据去查找。

CREATE 

然后我们可以使用postman测试一些,下面这两个就是你数据库存的client_id和client_secret

47cc1452d2025b14ede488b933468f16.png

以表单提交的方式添加三个参数grant_type='password'表示密码模式认证

7b39b53b84a6ac7183a31efe5d1035b8.png

3090ac75c84e1e5b11cf82c0383d8fe3.png

之后我们可以找一个方法测试一下

94502476cdc82242a4292ba55f9de257.png

38096a98e472d31b06c3f6f2af2c350e.png

d78f357813428acecf9ef88efbebea37.png

我们拿着生成好的token去访问,第一个接口是访问成功了,第二个由于我加了权限认证而登录人没有这个权限 导致不允许访问。同样我们也可以拿着refresh_token去刷新token。之前的时间是3287,这个token过期时间也是从数据库获取的。

5700470f69944afaf6c32f91814b7889.png

c73f845b83273cf83a46aad76a87571d.png

我们可以看到token重新生成了,接着我们需要把token存进redis中,因为对于这种访问频繁的数据我们可以减少维护。

@Configuration

这样生成的token就可以存到redis中了。

下面我来说一下使用jwt(Json Web Session)

上面我们说了生成token,一旦存储的token的服务挂掉了,而token又是根据UUID生成的一串无意义的字符串,这时候我们可以使用jwt,因为他是包含了用户的信息的一个令牌,即使存储令牌的访问挂了,我们也可以通过解析jwt来获取用户信息,同时也支持可拓展型,就是生成你需要的信息

/***

我们可以通过实现TokenEnhancer这个类生成JWT时加入一些扩展信息

public 

最后在MyAuthorizationServerConfig类中修改一下之前的代码,就能生成jwt了。

/**

89634a201d5eca08a0473489b410a5cd.png

我们可以同时解析jwt来获取用户信息,可以看到我们拓展的信息也加到jwt中了。

3f628a3a31ec2c682f51f2202153aa81.png

使用token和jwt的生成令牌的代码就这些了,有什么不对的可以评论区评论,谢谢,下次继续更新第三方登录,今天有点烦,哈哈哈!!!

源码已上传

https://github.com/yaozuowei/SpringSecurity​github.com

未完待续...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值