X Enterprises
Composables

useXAdminImpersonation

Starts and stops admin impersonation sessions and exposes reactive state for the current impersonated user.

useXAdminImpersonation

Impersonation session composable. Wraps POST /api/admin/impersonation/start, POST .../stop, and GET .../status to let admins assume a user's identity for debugging or support purposes. Exposes reactive refs so the XAdminImpersonationBanner can stay in sync without additional polling. Pairs with XAdminImpersonationBanner and XAdminImpersonationSwitcher.

Usage

const impersonation = useXAdminImpersonation()

impersonation.isImpersonating.value
impersonation.impersonatedUser.value

await impersonation.startImpersonation(userId)
await impersonation.stopImpersonation()

Returns

KeyTypeDescription
isImpersonatingRef<boolean>true when an impersonation session is currently active.
impersonatedUserRef<AdminUser | null>The user currently being impersonated, or null when not active.
startImpersonation(userId: string) => Promise<void>Begins impersonating the specified user and updates reactive state.
stopImpersonation() => Promise<void>Ends the current impersonation session and restores admin identity.

AI Context

composable: useXAdminImpersonation
package: "@xenterprises/nuxt-x-app-admin"
use-when: >
  Allowing admins to impersonate a user account for support or debugging — starting
  and stopping impersonation sessions and reactively displaying the active session
  state in the impersonation banner.
pairs-with: XAdminImpersonationBanner, XAdminImpersonationSwitcher
Copyright © 2026