【.NET Core项目实战-统一认证平台】第十三章 授权篇-如何强制有效令牌过期 (2)

首先需要新增资源端的授权记录,因为校验时需要,我们就以mpc_gateway为例新增授权记录,为了方便演示,直接使用SQL语句。

-- SELECT * FROM dbo.ApiResources WHERE INSERT INTO dbo.ApiSecrets VALUES(28,NULL,NULL,'SharedSecret','2tytAAysa0zaDuNthsfLdjeEtZSyWw8WzbzM8pfTGNI=');

首先我们测试刚才使用Reference token生成的access_token,参数如下图所示。

【.NET Core项目实战-统一认证平台】第十三章 授权篇-如何强制有效令牌过期

查看是否校验成功,从返回的状态码和active结果判断,如果为true校验成功,如果为false或者401校验失败。

我们直接从数据库里删除刚才授权的记录,然后再次提交查看结果,返回结果校验失败。

DELETE FROM PersistedGrants WHERE ClientId='clientref'

【.NET Core项目实战-统一认证平台】第十三章 授权篇-如何强制有效令牌过期

然后我们校验下Jwt Token,同样的方式,先生成jwt token,然后进行校验,结果如下图所示。

【.NET Core项目实战-统一认证平台】第十三章 授权篇-如何强制有效令牌过期

可以得到预期结果。

三、强制过期的方式 1、简易黑名单模式

在每次有Token请求时,资源服务器对请求的Token进行校验,在校验有效性校验通过后,再在黑名单里校验是否强制过期,如果存在黑名单里,返回授权过期提醒。资源服务器提示Token无效。注意由于每次请求都会校验Token的有效性,因此黑名单最好使用比如Redis缓存进行保存。

实现方式:

此种方式只需要重写Token验证方式即可实现。

优点

实现简单,改造少。

缺点

1、不好维护黑名单列表

2、对认证服务器请求压力太大

2、策略黑名单模式

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpppjw.html