Skip to content

useAuth

Authentication and user management composable.

Import

typescript
const {
  profile,
  isAdmin,
  isAuthenticated,
  signInWithEmail,
  signUp,
  signOut,
  promoteToAdmin,
  demoteToUser,
  listUsers,
} = useAuth()

Return Values

PropertyTypeDescription
profileRef<UserProfile | null>Current user's profile
isAdminComputedRef<boolean>Whether current user is admin
isAuthenticatedComputedRef<boolean>Whether user is logged in

Methods

MethodParametersReturnsDescription
signInWithEmailemail: string, password: stringPromise<void>Sign in with email/password
signUpemail: string, password: stringPromise<void>Register new account
signOutPromise<void>Sign out current user
promoteToAdminuserId: stringPromise<void>Promote user to admin (admin only)
demoteToUseruserId: stringPromise<void>Demote admin to user (admin only)
listUsersPromise<UserProfile[]>List all users (admin only)
deactivateUseruserId: stringPromise<void>Soft-ban user (admin only)
reactivateUseruserId: stringPromise<void>Unban user (admin only)

Supabase Functions Used

  • pip_ai_get_my_profile() — Get current user profile
  • pip_ai_check_is_admin() — Check admin status
  • pip_ai_promote_to_admin() — Promote user
  • pip_ai_list_users() — List users

Source

app/composables/useAuth.ts

Built with VitePress