[英]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.