แพ็คเกจ Laravel ที่แทนที่การเชื่อมโยงโมเดลเส้นทางเริ่มต้นสำหรับเวอร์ชันที่ปลอดภัยยิ่งขึ้น
คุณสามารถติดตั้งแพ็คเกจนี้ด้วยผู้แต่ง:
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()
คุณจึงไม่จำเป็นต้องเปลี่ยนแปลงโค้ดเพิ่มเติม
คุณต้องเปลี่ยนโค้ดของคุณเมื่อคุณสร้าง URL โดยรับคุณสมบัติ $model->id
จากโมเดลของคุณด้วยตนเอง จากนั้นคุณจะต้องเปลี่ยนการโทรเหล่านั้นเป็น $model->getRouteKey()
การกำหนดค่าเริ่มต้นถูกกำหนดไว้ใน hashed-route.php
หากคุณต้องการแก้ไขไฟล์นี้ คุณสามารถคัดลอกไปยังโฟลเดอร์ config ของคุณได้โดยใช้คำสั่งต่อไปนี้:
php artisan vendor:publish --provider= " MarkWaletLaravelHashedRouteHashedRouteServiceProvider "
ในไฟล์นี้ คุณสามารถกำหนดค่าตัวแปลงสัญญาณที่แตกต่างกันสำหรับการเข้ารหัสและการถอดรหัสคีย์ รวมถึงการตั้งค่าการกำหนดค่าเริ่มต้น
คุณสามารถแทนที่การกำหนดค่านี้ได้โดยการตั้งค่าคุณสมบัติ codec
ในโมเดลของคุณ
ไดรเวอร์ตัวแปลงสัญญาณที่รองรับคือ: null
, hashids
, optimus
& base64
ใช้ไดรเวอร์ null
หากคุณต้องการปิดใช้งานการแฮชคีย์เส้นทาง