Actualizar Sanctum 3 a Sanctum 4 en Laravel 11: config/sanctum.php y las migraciones
Hola, bienvenido. En esta lección vamos a revisar el paquete que ha subido de versión major sin que falle ningún test: Laravel Sanctum, de la versión 3 a la 4. Para actualizar Sanctum 3 a Sanctum 4 en Laravel 11 hay que comprobar que la migración de personal_access_tokens está en el proyecto, porque Sanctum 4 ya no la carga desde el paquete, y actualizar el bloque middleware de config/sanctum.php, que pasa a utilizar las clases del framework.
Es una lección corta, y es así a propósito: si un paquete sube de versión major y no falla ningún test, puede que haya cambiado algo que ningún test cubre, así que vamos a comprobar cada punto de su guía con el proyecto.
Lo que cambia en Sanctum 4
La guía de actualización de Sanctum (se abre en una pestaña nueva) para pasar de la versión 3 a la 4 tiene 4 puntos:
| Cambio | Qué dice la guía | En nuestro proyecto |
|---|---|---|
| Versión mínima de PHP | PHP 8.2 | Hecho en la lección 4 |
| Versión mínima de Laravel | Laravel 11 | Hecho en la lección 5 |
| Migraciones | Sanctum 4 ya no carga sus migraciones desde el paquete: hay que tenerlas en el proyecto | Hay que comprobarlo |
| Configuración | El bloque middleware de config/sanctum.php apunta a otras clases |
Hay que cambiarlo |
Los 2 primeros son los que hacían que composer outdated no enseñara Sanctum 4 con PHP 8.1 en la lección 3. Los otros 2 son los que vamos a revisar.
Fíjate en que ninguno de los 4 cambia cómo se emiten o se comprueban los tokens, que es lo que hace Sanctum en este proyecto: la API /api/tickets y el endpoint /api/tokens, que entrega un token a quien envía su email y su contraseña. Por eso ningún test ha fallado por Sanctum en la lección 5. Lo que cambia en la versión 4 es cómo se instala el paquete y cómo se configura su modo para SPA, el que autentica con la cookie de sesión en vez de con un token, que este proyecto no usa.
- 02Las migraciones de Sanctum
- 03El bloque middleware de config/sanctum.php
- 04Y Breeze 2
- 05Comprobar la API