[英]how to refresh or revoke OAuth2.0 access/refresh_token, when no refresh token available?
[英]How to revoke the access and refresh token in Oauth2.0?
我已使用此方法撤销令牌。 但是访问令牌和刷新令牌再次可重用。 如何撤销访问和刷新令牌?
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);
}
只能以这种方式撤销引用和刷新令牌。 JWT 在它们的 exp 时间之前一直有效,除非您在消费者中构建额外的逻辑。
我公司提供管理投资银行资产的软件,采用如下分离方式:
API 凭证
用户会话
撤销程序
通常,IT 管理员在撤销刷新令牌时希望使用上下文,例如应用程序 ID、用户 ID 和发布时间
因此,如果您提供用于撤销的 UI,您可能需要提供诸如上述的字段
刷新令牌仅用于桌面/移动应用程序或服务器端 Web 应用程序。
对于真正的浏览器应用程序(单页应用程序),您不能使用刷新令牌。 不过,您仍然可以将 API 凭证时间与用户会话时间分开。
我的博客上有一些关于会话的笔记,以防万一它们有帮助:
我没有涵盖服务器端 Web 应用程序,但基本上它们在身份验证 cookie 中携带刷新令牌
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.