本页还没有译文
本页 22 段还没译成한국어,下面显示的是英文原文。Signing out
还没翻译译自英文(supabase.com)本页 22 段都还没译
Signing out a user works the same way no matter what method they used to sign in.
Call the sign out method from the client library. It removes the active session and clears Auth data from the storage medium.
JavaScriptDartSwiftKotlinPythonC#
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('https://your-project-id.supabase.co', 'sb_publishable_...')
// ---cut---
async function signOut() {
const { error } = await supabase.auth.signOut()
}Future<void> signOut() async {
await supabase.auth.signOut();
}try await supabase.auth.signOut()suspend fun logout() {
supabase.auth.signOut()
}supabase.auth.sign_out()await supabase.Auth.SignOut();Sign out and scopes
Supabase Auth allows you to specify three different scopes for when a user invokes the sign out API in your application:
global(default) when all sessions active for the user are terminated.localwhich only terminates the current session for the user but keep sessions on other devices or browsers active.othersto terminate all but the current session for the user.
You can invoke these by providing the scope option:
Caution
JavaScript, Swift, Python, and C# default to the global scope. Dart and Kotlin default to local.
With the global scope, calling signOut() on one device revokes the refresh tokens for every session that user has, including other devices and browsers. Those other sessions fail with AuthApiError: Invalid Refresh Token: Refresh Token Not Found the next time they try to refresh, even though no one signed out on that device.
If your app expects independent sessions per device, pass the local scope explicitly, as shown in the examples below.
JavaScriptDartKotlinC#
import { createClient } from '@supabase/supabase-js'
const supabase = createClient('https://your-project-id.supabase.co', 'sb_publishable_...')
// ---cut---
// defaults to the global scope
await supabase.auth.signOut()
// sign out from the current session only
await supabase.auth.signOut({ scope: 'local' })// defaults to the local scope
await supabase.auth.signOut();
// sign out from all sessions
await supabase.auth.signOut(scope: SignOutScope.global);// defaults to the local scope
await supabase.auth.signOut();
// sign out from all sessions
supabase.auth.signOut(SignOutScope.GLOBAL)// defaults to the global scope
await supabase.Auth.SignOut();
// sign out from the current session only
await supabase.Auth.SignOut(SignOutScope.Local);Upon sign out, all refresh tokens and potentially other database objects related to the affected sessions are destroyed and the client library removes the session stored in the local storage medium.
Caution
Access Tokens of revoked sessions remain valid until their expiry time, encoded in the exp claim. The user won't be immediately logged out and will only be logged out when the Access Token expires.