ids4如何判斷token過期

竹林听雨行發表於2024-11-15
ids4如何判斷token過期

IdentityServer4 (Ids4) 使用Access Token來驗證客戶端對受保護資源的訪問許可權。當Access Token過期時,Ids4會返回一個HTTP 401 Unauthorized響應,並提供錯誤資訊指示Token已過期。

Ids4判斷Token過期的方式有:

  1. 使用預設的過期時間,可以在Ids4配置中設定。

  2. 使用Token自帶的過期時間(如JWT的"exp"欄位)。

  3. 使用Refresh Token來重新整理Access Token。

以下是一個簡單的示例,如何在Ids4中配置Token的過期時間:

public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer()
.AddInMemoryIdentityResources(Config.GetIdentityResources())
.AddInMemoryApiScopes(Config.GetApiScopes())
.AddInMemoryClients(Config.GetClients())
.AddDeveloperSigningCredential()
.AddTestUsers(Config.GetUsers())
.AddInMemoryPersistedGrants()
// 設定AccessToken和IdentityToken的過期時間
.AddTemporarySigningCredential()
.SetAccessTokenLifetime(3600) // 設定Access Token的過期時間為1小時(單位為秒)
.SetIdentityTokenLifetime(3600); // 設定Identity Token的過期時間為1小時(單位為秒)
}

如果你需要使用Refresh Token來延長Access Token的有效期,你需要在Ids4配置中啟用Refresh Token功能,並設定它的過期時間。

public void ConfigureServices(IServiceCollection services)
{
services.AddIdentityServer()
// ... 其他配置 ...
.AddDeveloperSigningCredential()
// 啟用Refresh Token並設定過期時間
.AllowOfflineAccess()
.SetRefreshTokenLifetime(2592000); // 設定Refresh Token的過期時間為30天(單位為秒)
}

當Access Token過期,客戶端可以使用Refresh Token去Ids4請求新的Token。如果Refresh Token也過期,使用者需要重新進行認證流程獲取新的Token。

相關文章