laravel hashed route
v2.8.0
一个 Laravel 包,它替换了默认路由模型绑定以获得更安全的版本。
您可以使用 Composer 安装此软件包:
composer require markwalet/laravel-hashed-route
Laravel 5.5 使用包自动发现,因此您不必注册服务提供者。如果您想手动注册服务提供商,请将以下行添加到您的config/app.php
文件中:
MarkWalet LaravelHashedRoute HashedRouteServiceProvider::class
当您想要对给定模型的路由进行哈希处理时。您唯一需要做的就是添加HasHashedRouteKey
特征:
use MarkWalet LaravelHashedRoute Concerns HasHashedRouteKey ;
class TestModel extends Model
{
use HasHashedRouteKey;
//...
}
之后,您可以像平常一样使用该模型。由于该特征重写了resolveRouteBinding()
和getRouteKey()
方法,因此不需要对代码进行额外的更改。
当您通过手动从模型中获取$model->id
属性来构建 url 时,您确实必须更改代码。然后您必须将这些调用更改为$model->getRouteKey()
。
默认配置在hashed-route.php
中定义。如果您想编辑此文件,可以使用以下命令将其复制到您的 config 文件夹:
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "
在此文件中,您可以为密钥的编码和解码配置不同的编解码器,以及设置默认配置。
您可以通过在模型上设置codec
属性来覆盖此配置。
支持的编解码器驱动程序有: null
、 hashids
、 optimus
和base64
。如果要禁用路由键散列,请使用null
驱动程序。