Skip to content

useSignOut

Terminate the current Openfort session and reset the provider state.

Request

type Request = {
  hook: 'useSignOut',
  params: [options?: OpenfortHookOptions]
}
 
type OpenfortHookOptions = {
  onSuccess?: (data: { error?: OpenfortError }) => void
  onError?: (error: OpenfortError) => void
  onSettled?: (data: { error?: OpenfortError } | undefined | null, error: OpenfortError | null) => void
  throwOnError?: boolean
}
 
type OpenfortError = {
  message: string
  type: OpenfortErrorType
  data: { [key: string]: any }
  name: string
}
 
enum OpenfortErrorType {
  AUTHENTICATION_ERROR = "AUTHENTICATION_ERROR",
  WALLET_ERROR = "WALLET_ERROR",
  CONFIGURATION_ERROR = "CONFIGURATION_ERROR",
  VALIDATION_ERROR = "VALIDATION_ERROR",
}

Response

type Response = SignOutReturn
 
type SignOutReturn = SignOutStatusFlags & {
  signOut(options?: OpenfortHookOptions): Promise<void | { error: OpenfortError }>
}
 
type SignOutStatusFlags = {
  isLoading: boolean
  isError: boolean
  isSuccess: boolean
  error?: OpenfortError | null
}

Example

import { useSignOut } from "@openfort/react"
 
function LogoutButton() {
  const { signOut, isLoading, isError, isSuccess, error } = useSignOut({
    throwOnError: true,
    onSuccess: () => {},
    onError: () => {},
    onSettled: () => {},
  })
 
  return (
    <button onClick={() => signOut()} disabled={isLoading}>
      Sign out
    </button>
  )
}