useGuestAuth
Create guest accounts that allow users to explore your app without committing to a specific authentication method.
Request
type Request = {
hook: 'useGuestAuth',
params: [options?: GuestHookOptions]
}
type GuestHookOptions = {
logoutOnError?: boolean
recoverWalletAutomatically?: boolean
onSuccess?: (data: GuestHookResult) => void
onError?: (error: OpenfortError) => void
onSettled?: (data: GuestHookResult | 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 = GuestAuthReturn
type GuestAuthReturn = GuestStatusFlags & {
signUpGuest(options?: GuestHookOptions): Promise<GuestHookResult>
}
type GuestStatusFlags = {
isLoading: boolean
isError: boolean
isSuccess: boolean
error?: OpenfortError | null
}
type GuestHookResult = {
error?: OpenfortError
user?: AuthPlayerResponse
}
type AuthPlayerResponse = {
player?: {
id: string
object: 'player'
name: string
description?: string
createdAt: number
metadata?: { [key: string]: any }
transactionIntents?: any[]
accounts?: any[]
}
id: string
object: 'player'
createdAt: number
linkedAccounts: LinkedAccount[]
}
type LinkedAccount = {
provider: string
email?: string
address?: string
externalUserId?: string
verified?: boolean
disabled: boolean
walletClientType?: string
connectorType?: string
updatedAt?: number
metadata?: { [key: string]: any }
}Example
import { useGuestAuth } from "@openfort/react-native"
function GuestCTA() {
const { signUpGuest, isLoading, isError, isSuccess, error } = useGuestAuth({
throwOnError: true,
onSuccess: () => {},
onError: () => {},
onSettled: () => {},
})
return (
<Button
title="Try as guest"
onPress={() => signUpGuest()}
disabled={isLoading}
/>
)
}