Skip to content

Commit 2427bab

Browse files
j4w8nmandarini
authored andcommitted
fix(auth): code verifier remains in storage during edge cases
1 parent 188fa17 commit 2427bab

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

packages/core/auth-js/src/GoTrueClient.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -572,6 +572,7 @@ export default class GoTrueClient {
572572
const { data, error } = res
573573

574574
if (error || !data) {
575+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
575576
return { data: { user: null, session: null }, error: error }
576577
}
577578

@@ -585,6 +586,7 @@ export default class GoTrueClient {
585586

586587
return { data: { user, session }, error: null }
587588
} catch (error) {
589+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
588590
if (isAuthError(error)) {
589591
return { data: { user: null, session: null }, error }
590592
}
@@ -1186,6 +1188,7 @@ export default class GoTrueClient {
11861188
}
11871189
throw new AuthInvalidCredentialsError('You must provide either an email or phone number.')
11881190
} catch (error) {
1191+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
11891192
if (isAuthError(error)) {
11901193
return { data: { user: null, session: null }, error }
11911194
}
@@ -1285,6 +1288,7 @@ export default class GoTrueClient {
12851288
xform: _ssoResponse,
12861289
})
12871290
} catch (error) {
1291+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
12881292
if (isAuthError(error)) {
12891293
return { data: null, error }
12901294
}
@@ -1741,6 +1745,7 @@ export default class GoTrueClient {
17411745
return { data: { user: session.user }, error: null }
17421746
})
17431747
} catch (error) {
1748+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
17441749
if (isAuthError(error)) {
17451750
return { data: { user: null }, error }
17461751
}
@@ -2193,6 +2198,7 @@ export default class GoTrueClient {
21932198
redirectTo: options.redirectTo,
21942199
})
21952200
} catch (error) {
2201+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
21962202
if (isAuthError(error)) {
21972203
return { data: null, error }
21982204
}
@@ -2319,6 +2325,7 @@ export default class GoTrueClient {
23192325
}
23202326
return { data, error }
23212327
} catch (error) {
2328+
await removeItemAsync(this.storage, `${this.storageKey}-code-verifier`)
23222329
if (isAuthError(error)) {
23232330
return { data: { user: null, session: null }, error }
23242331
}

0 commit comments

Comments
 (0)