只要几句代码就完成了功能校验,现在可以使用PostMan测试白名单功能。首先使用刚生成的Token测试,可以正确的返回结果。
紧接着,我从新生成Token,然后再次请求,结果如下图所示。
发现校验失败,提示Token已经失效,和我们预期的结果完全一致。
现在获取的Token只有最新的是白名单,其他的有效信息自动加入认定为黑名单,如果想要强制token失效,只要删除或修改Redis值即可。
有了这个认证结果,现在只需要在认证策略里增加合理的校验规则即可,比如5分钟请求一次验证或者使用ip策略发起校验等,这里就比较简单了,就不一一实现了,如果在使用中遇到问题可以联系我。
五、总结与思考本篇我介绍了IdentityServer4里Token认证的接口及实现过程,然后介绍强制有效Token过期的实现思路,并使用了白名单模式实现了强制过期策略。但是这种实现方式不一定是非常合理的实现方式,也希望有更好实现的朋友批评指正并告知本人。
实际生产环境中如果使用JWT Token,建议还是使用Token颁发的过期策略来强制Token过期,比如对安全要求较高的设置几分钟或者几十分钟过期等,避免Token泄漏造成的安全问题。
至于单机登录,其实只要开启强制过期策略就基本实现了,因为只要最新的登录会自动把之前的登录Token强制失效,如果再配合signalr强制下线即可。
项目源代码地址:https://github.com/jinyancao/Czar.IdentityServer4