天天看点

IdentityServer4之Reference Token

背景:

最近有同事问我,使用identityserver4获取jwt后,在jwt有效期内发现这个token被泄露了,想立刻使其失效怎么办?

然后我上网看了一下,发现jwt是不能失效的,如果想失效token,可以使用reference token

1.怎么获取reference token?

下载源码:https://github.com/walt-liuzw/IdentityServer4.Samples

打开项目:

IdentityServer4之Reference Token
发现里面的mvc客户端支持reference token类型
IdentityServer4之Reference Token
使用postman获取token
IdentityServer4之Reference Token

{
"access_token": "d39db758f3379bab99997d4bf720101c8c2fc200d19c80082ff32a73e6834fc0",
"expires_in": 3600,
"token_type": "Bearer"
}
      

  

2.验证token有效性

使用http://localhost:5000/connect/introspect访问

IdentityServer4之Reference Token

 发现token是正常的,也就是active:true

3.使用revocation使token失效

IdentityServer4之Reference Token

 然后再次验证第二步时,发现返回的结果是false,说明已经让这个token失效了

问题:使用这种方式让token失效,有个弊端,就是需要每次都去调用identityserver4,性能需要考虑,毕竟jwt可以在有效期内不用再去调用服务端

继续阅读