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.