Un paquete Laravel que reemplaza el enlace del modelo de ruta predeterminado por una versión más segura.
Puedes instalar este paquete con Composer:
composer require markwalet/laravel-hashed-route
Laravel 5.5 utiliza el descubrimiento automático de paquetes, por lo que no es necesario registrar el proveedor de servicios. Si desea registrar el proveedor de servicios manualmente, agregue la siguiente línea a su archivo config/app.php
:
MarkWalet LaravelHashedRoute HashedRouteServiceProvider::class
Cuando desea aplicar hash a las rutas para un modelo determinado. Lo único que tienes que hacer es agregar el rasgo HasHashedRouteKey
:
use MarkWalet LaravelHashedRoute Concerns HasHashedRouteKey ;
class TestModel extends Model
{
use HasHashedRouteKey;
//...
}
Después de eso puedes usar el modelo como lo harías normalmente. Debido a que el rasgo anula los métodos resolveRouteBinding()
y getRouteKey()
, no se requieren cambios adicionales en su código.
Debe cambiar su código cuando esté creando sus URL obteniendo manualmente la propiedad $model->id
de su modelo. Luego tendrás que cambiar esas llamadas a $model->getRouteKey()
.
La configuración predeterminada está definida en hashed-route.php
. Si desea editar este archivo, puede copiarlo a su carpeta de configuración usando el siguiente comando:
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "
En este archivo podrás configurar diferentes códecs para la codificación y decodificación de claves, así como establecer una configuración por defecto.
Puede anular esta configuración configurando la propiedad codec
en su modelo.
Los controladores de códec compatibles son: null
, hashids
, optimus
y base64
. Utilice el controlador null
si desea deshabilitar el hash de clave de ruta.