Cellar adalah perpustakaan ringan untuk menghasilkan dan memvalidasi token yang ditandatangani yang dapat digunakan untuk tautan pengaturan ulang kata sandi, otentikasi, CSRF, atau apa pun yang mungkin Anda perlukan. Hal ini bertujuan untuk menjadi aman dan memiliki ketergantungan eksternal yang minimum.
Tambahkan Cellar ke composer.json Anda dan jalankan composer update
untuk menginstalnya.
{
"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 menghasilkan token sebagai string tunggal dalam bentuk {random}-{expirytime}-{signature}, yang dikodekan base64 sehingga cocok untuk disertakan di sebagian besar tempat.
Anda mungkin ingin menggunakan algoritma penandatanganan Cellar untuk memverifikasi bahwa beberapa data tambahan belum dirusak. Misalnya, Anda dapat menggunakan ini untuk memasukkan alamat email atau informasi konfirmasi lainnya di URL daripada harus menyimpan catatan pemetaan antara token dan sisi server pengguna.
$ 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 .
}
Merupakan praktik yang baik untuk sesekali merotasi rahasia - tetapi tanpa membuat tanda tangan yang belum kedaluwarsa menjadi tidak valid. Ini mudah dilakukan - tambahkan opsi konfigurasi old_secrets
dengan rahasia sebelumnya yang masih valid. Cellar akan mulai menggunakan rahasia baru untuk menghasilkan token baru sambil tetap menerima token yang ditandatangani dengan nilai yang lebih lama.
Setelah masa berlaku maksimum token Anda telah berlalu, Anda kemudian dapat menghapus rahasia lama dari daftar Anda dan Cellar akan berhenti menerimanya.
Cellar memiliki rangkaian lengkap pengujian unit PHPUnit - jalankan dengan bin/phpunit
. Kontribusi hanya akan diterima jika disertai dengan pengujian unit yang terstruktur dengan baik. Menginstal dengan composer akan memberi Anda semua yang Anda perlukan untuk mengerjakan proyek tersebut.
Cellar adalah hak cipta AMXX 2019 dan dirilis di bawah lisensi BSD.