Buscar en la documentación

personal_access_tokens

Tokens de sesión de los usuarios (Sanctum).

Módulo auth2 min de lecturaVer en GitHub

Una fila por sesión abierta. La usa Sanctum para validar el token Bearer de cada petición.

ColumnaTipoRestriccionesDescripción
idBIGINT UNSIGNEDPKVa al inicio del token (12|trazo_…) para encontrarlo rápido
tokenable_typeVARCHAR(20)NOT NULL, CHECK = 'user'Lo exige Sanctum; fijado a user para que la FK no sea ambigua
tokenable_idBIGINT UNSIGNEDFK → users.id, CASCADEDueño de la sesión
nameVARCHAR(100)NOT NULLTipo de token: session o mfa (ingreso a medias)
tokenCHAR(64)UNIQUE, NOT NULLSHA-256 del token; el valor en claro nunca se guarda
abilitiesTEXTNULL["session"] en una sesión completa; ["mfa"] en un ingreso a medias, que solo sirve para el segundo paso
last_used_atDATETIMENULLÚltima petición; sirve para cerrar la sesión por inactividad
expires_atDATETIMENULLVencimiento máximo: 8 horas en una sesión completa y 5 minutos en un ingreso a medias
created_at, updated_atTIMESTAMP

Por qué la FK es real

Sanctum modela al dueño del token con una relación polimórfica (tokenable_type + tokenable_id). Trazo no admite relaciones polimórficas sin FK:

  • Solo los usuarios tienen tokens, así que tokenable_id es una FK real a users.
  • tokenable_type está fijado a user, con un CHECK en la tabla y un morph map obligatorio en la aplicación.

Índices

ÍndiceUso
token (único)Validar el token de cada petición
(tokenable_type, tokenable_id)Sesiones de un usuario
tokenable_id (FK)Integridad referencial
expires_atLimpieza diaria de tokens vencidos

Ciclo de vida

  • Se crea al iniciar sesión.
  • Se borra al cerrar sesión, cuando la limpieza diaria lo encuentra vencido hace más de un día, o si se borra el usuario (CASCADE).
  • Deja de valer al vencer, tras una hora sin uso o si la cuenta se desactiva.

Dónde está en el código