Skip to content

Commit 7f2e8fe

Browse files
committed
Sign out when token can't be refreshed
1 parent 3036f2a commit 7f2e8fe

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

Sources/DropboxClient/Auth.swift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,7 @@ extension Auth {
213213
let statusCode = (response as? HTTPURLResponse)?.statusCode
214214

215215
guard let statusCode, (200..<300).contains(statusCode) else {
216+
await saveCredentials(nil)
216217
throw Error.response(statusCode: statusCode, data: responseData)
217218
}
218219

Tests/DropboxClientTests/AuthTests.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -392,6 +392,7 @@ final class AuthTests: XCTestCase {
392392
var keychain = Keychain.unimplemented()
393393
keychain.loadCredentials = { await credentials.value }
394394
keychain.saveCredentials = { await credentials.setValue($0) }
395+
keychain.deleteCredentials = { await credentials.setValue(nil) }
395396
return keychain
396397
}(),
397398
httpClient: .init { _ in
@@ -423,6 +424,9 @@ final class AuthTests: XCTestCase {
423424
"Expected to throw response error, got \(error)"
424425
)
425426
}
427+
await credentials.withValue {
428+
XCTAssertNil($0)
429+
}
426430
}
427431

428432
func testSignOut() async {

0 commit comments

Comments
 (0)