Casos de uso comunes
En esta sección, proporcionaremos algunos ejemplos para ayudarte a comprender algunos escenarios donde reclamos de token personalizados pueden ser útiles, ofreciéndote algunas referencias. De esta manera, cuando encuentres dificultades en la gestión de acceso, podrás evaluar si los reclamos de token personalizados pueden brindarte conveniencia.
Hacer posible el control de acceso basado en atributos (ABAC)
Control de acceso basado en atributos (ABAC) es un modelo de control de acceso que utiliza atributos (como roles de usuario, propiedades de recursos y condiciones ambientales) para tomar decisiones de control de acceso. Es una forma flexible y dinámica de gestionar el acceso a recursos protegidos.
Supongamos que estás construyendo una aplicación, y el lanzamiento de la aplicación se divide en dos fases: beta pública y lanzamiento oficial. Incluso después de que la aplicación se lance oficialmente, deseas que los usuarios antiguos que participaron en la beta pública continúen usando las funciones de pago.
Después de que la aplicación se lance oficialmente, utilizas la función de control de acceso basado en roles (RBAC) de Logto para implementar el control de acceso para el uso de funciones de pago. Para verificar fácilmente si un usuario ya estaba usando la aplicación durante la fase beta pública, puedes usar el método getCustomJwtClaims()
para agregar un reclamo createdAt
en la carga útil del token.
Luego, al realizar el control de acceso en tus APIs protegidas, necesitas permitir tokens de acceso que cumplan con cualquiera de las siguientes condiciones:
- Con el contexto de RBAC, teniendo el alcance para acceder a recursos de pago.
- El
createdAt
es anterior al tiempo de finalización de la fase beta pública.
Si no hay una función de reclamos de token personalizados, al verificar permisos para recursos de API protegidos, es necesario llamar a la Logto Management API para verificar si el usuario con el token de acceso actual tiene los permisos correspondientes al rol requerido por un determinado recurso de API.
En un escenario similar, supongamos que tu aplicación muestra deseos de cumpleaños en la página de inicio de sesión si se acerca el cumpleaños del usuario. Puedes usar reclamos de token personalizados para agregar un campo de cumpleaños a la carga útil del token, que se puede usar para determinar si se debe mostrar un mensaje específico.
Bloquear manualmente la emisión de tokens
Supongamos que Joe está ejecutando un juego en línea y utiliza Logto como un sistema de gestión de identidad y acceso (IAM).
Supongamos que este juego requiere recargas para comprar tiempo de juego. Joe registra el saldo de cada usuario en su servicio de juego y deduce continuamente del saldo a medida que se acumula el tiempo de juego. Joe quiere forzar a los jugadores a cerrar sesión cuando su saldo de cuenta se agote para alentarlos a recargar.
En este punto, Joe también puede usar la función de reclamos de token personalizados proporcionada por Logto para lograr esto:
- En el script, se puede usar una llamada a una API externa para obtener datos externos para recuperar el saldo actual del jugador desde el servidor de juegos de Joe.
- Si el saldo es menor o igual a 0, se puede usar el método
api.denyAccess()
para bloquear la emisión de tokens.
En este momento, dado que no se puede obtener un nuevo token de acceso válido, el jugador será forzado a cerrar sesión en el juego.