Skip to content

useUser

Read the current Openfort user and refresh authentication tokens on demand.

Request

type Request = {
  hook: 'useUser',
  params: []
}

Response

type Response = UseUserResult
 
type UseUserResult = {
  user: AuthPlayerResponse | null
  isAuthenticated: boolean
  getAccessToken(): Promise<string | null>
  validateAndRefreshToken(): Promise<void>
}
 
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 { useUser } from "@openfort/react"
 
function SampleComponent() {
  const {
    user,
    isAuthenticated,
    getAccessToken,
    validateAndRefreshToken,
  } = useUser()
 
  if (!isAuthenticated) return <SignIn />
 
  return (
    <ProfilePage
      name={user?.player.name}
      onRefreshToken={validateAndRefreshToken}
    />
  )
}