Cellar เป็นไลบรารีขนาดเล็กสำหรับการสร้างและตรวจสอบความถูกต้องของโทเค็นที่เซ็นชื่อแล้ว ซึ่งสามารถใช้สำหรับลิงก์รีเซ็ตรหัสผ่าน การรับรองความถูกต้อง CSRF หรือสิ่งอื่นใดที่คุณอาจต้องการ โดยมีจุดมุ่งหมายเพื่อความปลอดภัยและมีการพึ่งพาภายนอกขั้นต่ำ
เพิ่ม Cellar ลงใน composer.json ของคุณแล้วเรียกใช้ composer update
เพื่อติดตั้ง
{
"require" : { "amxx-bg/cellar" : " 0.1.*@dev " }
}
$ secret = ' some-constant-secret-value ' ;
$ cellar = new AMXXBG Cellar ( $ secret , array ( ' lifetime ' => 3600 ));
// Generate with default lifetime from constructor options
$ token = $ cellar -> generate ();
// Overall check if token is valid
if ( $ cellar -> isValid ( $ token )) {
// Do whatever
}
// Or for more control use :
$ cellar -> hasExpired ( $ token );
$ cellar -> hasTampered ( $ token );
Cellar สร้างโทเค็นเป็นสตริงเดียวในรูปแบบ {random}-{expirytime}-{signature} ซึ่งมีการเข้ารหัส base64 ดังนั้นจึงเหมาะสำหรับการรวมไว้ในที่ส่วนใหญ่
คุณอาจต้องการใช้อัลกอริธึมการลงนามของ Cellar เพื่อตรวจสอบว่าข้อมูลเพิ่มเติมบางอย่างไม่ได้รับการแก้ไข ตัวอย่างเช่น คุณสามารถใช้สิ่งนี้เพื่อรวมที่อยู่อีเมลหรือข้อมูลการยืนยันอื่นๆ ใน URL แทนที่จะต้องจัดเก็บบันทึกการแมประหว่างโทเค็นและฝั่งเซิร์ฟเวอร์ผู้ใช้
$ token = $ cellar -> generate ( 3600 , [ ' user_id ' => 9123 ]);
// Then , later :
if ( $ cellar -> isValid ( $ _GET [ ' token ' ], [ ' user_id ' => $ _GET [ ' user_id ' ]]) {
// You can now trust user_id , even if it came through the URL , because it matches the value you originally signed
// for this token .
}
แนวทางปฏิบัติที่ดีในการหมุนเวียนข้อมูลลับเป็นครั้งคราว แต่ต้องไม่ทำให้ลายเซ็นที่ยังไม่หมดอายุเป็นโมฆะ ทำได้ง่ายๆ - เพิ่มตัวเลือกการกำหนดค่า old_secrets
พร้อมด้วยข้อมูลลับก่อนหน้านี้ที่ควรจะยังใช้ได้อยู่ Cellar จะเริ่มใช้ความลับใหม่เพื่อสร้างโทเค็นใหม่ในขณะที่ยังคงยอมรับโทเค็นที่ลงนามด้วยค่าที่เก่ากว่า
เมื่อพ้นขีดจำกัดการหมดอายุของโทเค็นสูงสุดของคุณแล้ว คุณสามารถลบความลับเก่าออกจากรายการของคุณได้ และ Cellar จะหยุดยอมรับมัน
Cellar มีชุดทดสอบหน่วย PHPUnit เต็มรูปแบบ - รันด้วย bin/phpunit
การบริจาคจะได้รับการยอมรับก็ต่อเมื่อมีการทดสอบหน่วยที่มีโครงสร้างดีเท่านั้น การติดตั้งด้วยโปรแกรมแต่งเพลงจะทำให้คุณได้รับทุกสิ่งที่จำเป็นในการทำงานกับโปรเจ็กต์นี้
Cellar เป็นลิขสิทธิ์ 2019 AMXX และเผยแพร่ภายใต้ใบอนุญาต BSD