Oauth 2.0 如何在Oauth2.0中撤销访问和刷新令牌?
我已使用此方法撤销令牌。但是访问令牌和刷新令牌仍然是可重用的。如何撤销访问和刷新令牌Oauth 2.0 如何在Oauth2.0中撤销访问和刷新令牌?,oauth-2.0,identityserver4,Oauth 2.0,Identityserver4,我已使用此方法撤销令牌。但是访问令牌和刷新令牌仍然是可重用的。如何撤销访问和刷新令牌 public async Task<IActionResult> Revoke(string refreshToken,stringaccessToken){ var identityService = await DiscoveryClient.GetAsync("http://localhost:5000"); var revocationClient = n
public async Task<IActionResult> Revoke(string
refreshToken,stringaccessToken){
var identityService = await
DiscoveryClient.GetAsync("http://localhost:5000");
var revocationClient = new
TokenRevocationClient(identityService.RevocationEndpoint, "ro.client",
"secret");
var response = await
revocationClient.RevokeRefreshTokenAsync(refreshToken);
var response1 = await
revocationClient.RevokeAccessTokenAsync(accessToken);
}
公共异步任务撤销(字符串
refreshToken,stringaccessToken){
var identityService=等待
DiscoveryClient.GetAsync(“http://localhost:5000");
var revocationClient=new
TokenRevocationClient(identityService.RevocationEndpoint,“ro.client”,
“秘密”);
var响应=等待
revocationClient.RevokeRefreshTokenAsync(refreshToken);
var response1=等待
revocationClient.RevokeAccessTokenAsync(accessToken);
}
只有引用和刷新令牌可以通过这种方式撤销。JWT在其exp时间之前有效,除非您在消费者中构建附加逻辑。我的公司提供管理投资银行资产的软件,使用以下分离:
API凭据
- 访问令牌用于从UI调用API
- 它们的寿命只有30分钟
- 它们是JWT,不需要撤销,因为它们是短期的
- 这些由刷新令牌表示
- UI的刷新令牌可能持续8小时
- 访问令牌每30分钟过期一次,并以静默方式续订
- 刷新令牌存储在数据库中
- IT管理员可以通过从数据库中删除刷新令牌来撤销刷新令牌
- 这将在不超过30分钟后强制重新登录
- 通常,IT管理员在撤销刷新令牌(如应用程序Id、用户Id和发出的时间)时会希望使用上下文
- 因此,如果您要提供用于撤销的UI,您可能需要提供上述字段
- 我不介绍服务器端web应用,但基本上它们在身份验证cookie中携带刷新令牌