Cellar ist eine leichtgewichtige Bibliothek zum Generieren und Validieren signierter Token, die für Links zum Zurücksetzen von Passwörtern, Authentifizierung, CSRF oder alles andere, was Sie benötigen, verwendet werden kann. Ziel ist es, sicher zu sein und minimale externe Abhängigkeiten zu haben.
Fügen Sie Cellar zu Ihrer Composer.json hinzu und führen Sie composer update
aus, um es zu installieren.
{
"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 generiert Token als einzelne Zeichenfolge der Form {random}-{expirytime}-{signature}, base64-codiert und daher für die Einbindung an den meisten Orten geeignet.
Möglicherweise möchten Sie den Signaturalgorithmus von Cellar verwenden, um zu überprüfen, ob einige zusätzliche Daten nicht manipuliert wurden. Sie könnten dies beispielsweise verwenden, um E-Mail-Adressen oder andere Bestätigungsinformationen in eine URL aufzunehmen, anstatt einen Datensatz der Zuordnung zwischen Token und Benutzerserverseite speichern zu müssen.
$ 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 .
}
Es ist eine gute Praxis, Geheimnisse gelegentlich zu rotieren, ohne jedoch noch nicht abgelaufene Signaturen ungültig zu machen. Dies ist ganz einfach: Fügen Sie eine Konfigurationsoption old_secrets
mit allen vorherigen Geheimnissen hinzu, die noch gültig sein sollten. Cellar wird damit beginnen, das neue Geheimnis zur Produktion neuer Token zu verwenden, während es weiterhin Token akzeptiert, die mit einem älteren Wert signiert sind.
Sobald Ihre maximale Token-Ablauffrist abgelaufen ist, können Sie das alte Geheimnis von Ihrer Liste entfernen und Cellar wird es nicht mehr akzeptieren.
Cellar verfügt über eine vollständige Suite von PHPUnit-Komponententests – führen Sie diese mit bin/phpunit
aus. Beiträge werden nur akzeptiert, wenn sie von gut strukturierten Unit-Tests begleitet werden. Durch die Installation mit Composer erhalten Sie alles, was Sie für die Arbeit am Projekt benötigen.
Cellar unterliegt dem Copyright 2019 AMXX und wird unter der BSD-Lizenz veröffentlicht.