iOS update refresh token failure to only logout when request returns 401/403

This commit is contained in:
advplyr
2026-09-08 16:28:01 -05:00
parent c1a0b96ae4
commit d11d9860b6
+6 -7
View File
@@ -183,6 +183,7 @@ class ApiClient {
]
let refreshRequest = AF.request("\(serverConfig.address)/auth/refresh", method: .post, headers: refreshHeaders)
.validate(statusCode: 200..<300)
refreshRequest.responseDecodable(of: RefreshResponse.self) { response in
switch response.result {
@@ -190,7 +191,6 @@ class ApiClient {
guard let user = refreshResponse.user,
!user.accessToken.isEmpty else {
AbsLogger.error(message: "handleTokenRefresh: No access token in refresh response for server \(serverConfig.name)")
handleRefreshFailure()
callback?(nil)
return
}
@@ -206,7 +206,8 @@ class ApiClient {
case .failure(let error):
AbsLogger.error(message: "handleTokenRefresh: Refresh request failed for server \(serverConfig.name): \(error)")
handleRefreshFailure()
let status = response.response?.statusCode
if status == 401 || status == 403 { handleRefreshFailure() }
callback?(nil)
}
}
@@ -313,12 +314,10 @@ class ApiClient {
private static func handleRefreshFailure() {
AbsLogger.info(message: "handleRefreshFailure: Token refresh failed, clearing session")
// Clear the current server connection
let configId = Store.serverConfig?.id
Store.serverConfig = nil
// Remove refresh token from secure storage
if let serverConfig = Store.serverConfig {
_ = secureStorage.removeRefreshToken(serverConnectionConfigId: serverConfig.id)
if let configId = configId {
_ = secureStorage.removeRefreshToken(serverConnectionConfigId: configId)
}
// Notify webview frontend about token refresh failure