Roles
Asigna roles a tus usuarios en el Dashboard, como admin o editor, y úsalos en tu app. Block-Auth envía los roles del usuario en cada login.
Crear y asignar roles
En el Dashboard, crea los roles y asígnalos a tus usuarios. Consulta Roles en el Dashboard.
Cada rol tiene un nombre, que eliges tú y puedes cambiar, y un slug, que Block-Auth genera al crear el rol (por ejemplo acme-x7k2p9) y que no cambia nunca. Usa el slug en tu código: cópialo de la pestaña Roles del Dashboard, debajo del nombre del rol.
Mostrar u ocultar interfaz
Cuando el usuario ha iniciado sesión con el widget, lee sus roles en el frontend. Llegan en la respuesta de tu backend (/code y /me en las rutas del backend), así que no necesitas nada más.
import { useBlockAuthUser } from '@block-auth.io/react'
export function AdminLink() {
const { hasRoleBySlug, isLoadingUser } = useBlockAuthUser()
if (isLoadingUser || !hasRoleBySlug('acme-x7k2p9')) return null
return <a href="/admin">Panel de administración</a>
}
Ocultar un botón no es seguridad: cualquiera puede llamar a tu backend directamente. Comprueba el rol también en tu backend.
Proteger tu backend
Cómo lo integras
Tu backend recibe los roles al canjear el código de login (/api/auth/token) y los guarda en la sesión del usuario. Compruébalos ahí antes de hacer cualquier cosa que requiera un rol. Con el paquete de Block-Auth, lee el usuario con currentUser, que además cierra la sesión en signedExpiredAt (en .NET los roles son claims de rol):
Los roles se leen en el login. Si cambias los roles de un usuario en el Dashboard, tu backend los verá en su próximo login.
Referencia
useBlockAuthUser() en React y Vue, y las signals de BlockAuthService en Angular, devuelven:
| Valor | Qué es |
|---|---|
roles | Los roles del usuario, como { name, slug }. |
roleNames / roleSlugs | Solo los nombres, o solo los slugs. |
hasRoleBySlug(slug) | true si el usuario tiene ese rol. |
hasAnyRoleBySlug(slugs) | true si el usuario tiene al menos uno. |
hasRole(name) / hasAnyRole(names) | Lo mismo, por nombre. No distingue mayúsculas. |
isLoadingUser | true mientras se carga el usuario. Espera antes de decidir. |
user | El usuario con sesión iniciada (address, did, roles), o null. |

