背景:
最近有同僚問我,使用identityserver4擷取jwt後,在jwt有效期内發現這個token被洩露了,想立刻使其失效怎麼辦?
然後我上網看了一下,發現jwt是不能失效的,如果想失效token,可以使用reference token
1.怎麼擷取reference token?
下載下傳源碼:https://github.com/walt-liuzw/IdentityServer4.Samples
打開項目:

{
"access_token": "d39db758f3379bab99997d4bf720101c8c2fc200d19c80082ff32a73e6834fc0",
"expires_in": 3600,
"token_type": "Bearer"
}
2.驗證token有效性
使用http://localhost:5000/connect/introspect通路
發現token是正常的,也就是active:true
3.使用revocation使token失效
然後再次驗證第二步時,發現傳回的結果是false,說明已經讓這個token失效了
問題:使用這種方式讓token失效,有個弊端,就是需要每次都去調用identityserver4,性能需要考慮,畢竟jwt可以在有效期内不用再去調用服務端