Skip to content

Commit 11c629f

Browse files
authored
fix(realtime): revert realtime token to apikey on user sign out (#429)
1 parent bee6fa7 commit 11c629f

File tree

1 file changed

+16
-9
lines changed

1 file changed

+16
-9
lines changed

Sources/Supabase/SupabaseClient.swift

Lines changed: 16 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,8 @@ public final class SupabaseClient: Sendable {
9595
var storage: SupabaseStorageClient?
9696
var rest: PostgrestClient?
9797
var functions: FunctionsClient?
98+
99+
var changedAccessToken: String?
98100
}
99101

100102
private let mutableState = LockIsolated(MutableState())
@@ -347,14 +349,19 @@ public final class SupabaseClient: Sendable {
347349
}
348350

349351
private func handleTokenChanged(event: AuthChangeEvent, session: Session?) async {
350-
guard [
351-
.initialSession,
352-
.signedIn,
353-
.tokenRefreshed,
354-
.signedOut,
355-
].contains(event) else { return }
356-
357-
realtime.setAuth(session?.accessToken)
358-
await realtimeV2.setAuth(session?.accessToken)
352+
let accessToken = mutableState.withValue {
353+
if event == .tokenRefreshed || event == .signedIn, $0.changedAccessToken != session?.accessToken {
354+
$0.changedAccessToken = session?.accessToken
355+
return session?.accessToken
356+
} else if event == .signedOut {
357+
$0.changedAccessToken = nil
358+
return supabaseKey
359+
} else {
360+
return nil
361+
}
362+
}
363+
364+
realtime.setAuth(accessToken)
365+
await realtimeV2.setAuth(accessToken)
359366
}
360367
}

0 commit comments

Comments
 (0)