首先需要新增资源端的授权记录,因为校验时需要,我们就以mpc_gateway为例新增授权记录,为了方便演示,直接使用SQL语句。
-- SELECT * FROM dbo.ApiResources WHERE INSERT INTO dbo.ApiSecrets VALUES(28,NULL,NULL,'SharedSecret','2tytAAysa0zaDuNthsfLdjeEtZSyWw8WzbzM8pfTGNI=');首先我们测试刚才使用Reference token生成的access_token,参数如下图所示。
查看是否校验成功,从返回的状态码和active结果判断,如果为true校验成功,如果为false或者401校验失败。
我们直接从数据库里删除刚才授权的记录,然后再次提交查看结果,返回结果校验失败。
DELETE FROM PersistedGrants WHERE ClientId='clientref'然后我们校验下Jwt Token,同样的方式,先生成jwt token,然后进行校验,结果如下图所示。
可以得到预期结果。
三、强制过期的方式 1、简易黑名单模式在每次有Token请求时,资源服务器对请求的Token进行校验,在校验有效性校验通过后,再在黑名单里校验是否强制过期,如果存在黑名单里,返回授权过期提醒。资源服务器提示Token无效。注意由于每次请求都会校验Token的有效性,因此黑名单最好使用比如Redis缓存进行保存。
实现方式:
此种方式只需要重写Token验证方式即可实现。
优点
实现简单,改造少。
缺点
1、不好维护黑名单列表
2、对认证服务器请求压力太大
2、策略黑名单模式