Skip to content

Commit 5609e3a

Browse files
author
Catalina Turlea
committed
Do not remove refresh_token on server errors
This prevents the user to be logged out with `.noRefreshToken` when the next refresh token request is triggered in case the error was a server error and not a client error.
1 parent fb4d26e commit 5609e3a

1 file changed

Lines changed: 6 additions & 1 deletion

File tree

Sources/Flows/OAuth2.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -366,9 +366,14 @@ open class OAuth2: OAuth2Base {
366366
do {
367367
let data = try response.responseData()
368368
let json = try self.parseRefreshTokenResponseData(data)
369-
if response.response.statusCode >= 400 {
369+
switch response.response.statusCode {
370+
case 400..<500:
370371
self.clientConfig.refreshToken = nil
371372
throw OAuth2Error.generic("Failed with status \(response.response.statusCode)")
373+
case 500...599:
374+
throw OAuth2Error.generic("Failed with status \(response.response.statusCode)")
375+
default:
376+
break
372377
}
373378
self.logger?.debug("OAuth2", msg: "Did use refresh token for access token [\(nil != self.clientConfig.accessToken)]")
374379
callback(json, nil)

0 commit comments

Comments
 (0)