Make useConvexAuth().user understand app-specific claims like role or stripeCustomerId.
declare module 'better-convex-nuxt/dist/runtime/utils/types' {
interface ConvexUser {
role?: 'admin' | 'member' | 'viewer'
stripeCustomerId?: string
organizationId?: string
}
}
export {}
<script setup lang="ts">
const { user } = useConvexAuth()
const isAdmin = computed(() => user.value?.role === 'admin')
</script>
<template>
<div>
<p>Customer: {{ user?.stripeCustomerId || 'none' }}</p>
<p v-if="isAdmin">Admin tools enabled</p>
</div>
</template>
useConvexAuth().user as UI-friendly identity + claims.usePermissions() and backend checks).