pragmarx/recovery
Generate customizable recovery/backup codes for 2FA account recovery. Create arrays, JSON, or (Laravel) Collections, and tune how many codes to make plus blocks and characters per block for your preferred format and length.
Generate recovery/backup codes to provide a way for your users to recover from a lost two factor auth, or any problem with it.
Via Composer
$ composer require pragmarx/recovery
$this->recovery = new PragmaRX\Recovery();
$this->recovery->toArray();
If you are using Laravel or install a package like Collect, you can:
$this->recovery->toCollection();
You can also define a different collection function to be used:
$this->recovery->collectionFunction('alternateCollection');
$this->recovery->setCount(8)->toCollection();
$this->recovery->toJson();
Should give you
[
"C0r2Xp4o1v-oG3pteKXw3",
"oLuSmVeJ7D-t4wnJVwkuC",
"XdPXXJy3J6-Gl3d0EwWt7",
"Bn8twjUJRt-Lv3KaAFwjR",
"SrnMagyGRg-eC7WPyFQ17",
"mRO4WPJpRN-hgfrUZqqZd",
"xBZtyFOrJZ-Tbpg0pSvzf",
"eiPFmwvJp0-oSqdNKclDH"
]
$this->recovery
->setCount(8) // Generate 8 codes
->setBlocks(5) // Every code must have 7 blocks
->setChars(16) // Each block must have 16 chars
->toArray();
Should give you
[
"0ldZb4vhamHEd8B3-Tmri54Lb0t52wefR-gbJaHTN44O9C1igf-HRdF185SXxDwcdRf",
"sFyrtezhjbFhCube-MszCKzvdsNL7QEY1-IY5OtpsFqM5d7jA7-t2mjCViRMHcMDdNZ",
"bjKMlcsPhNrpFpSN-IbJR2ebOeXCxXVVb-omZLu3Ki9ImIEqZh-1sK74zOADl86GGRs",
"wpa23eFj8PJcPdMG-E8A4LCwmd8iF8jt4-bVi2ltUEv29zoPJJ-pSetq2GD6euvZ9RA",
"EJ3SRDQlddr2e2hT-eF79n1lqndwhRM7G-HrjHEVyA9zHSLi8g-TrHzl5oaqPi1NgCT",
"lL7p4zjFxhQLND24-MEV1lmmyEKObjhhT-ldRWbOEnJLjBHmuc-Iex10bYAZ3NBljo2",
"uomVxkrjGYqOqmdm-AtI9MiqFEJjTlSRi-AUNEwwUfrJVP5iaH-uyrsFCrqzC3WcaAa"
]
$this->recovery
->numeric() // Generate numeric only codes
->toArray();
$this->recovery
->alpha() // Get back to default alpha generation
->toArray();
$this->recovery
->lowercase() // All lower
->toArray();
$this->recovery
->uppercase() // All upper
->toArray();
$this->recovery
->mixedcase() // Get back to default mixed case
->toArray();
Usually - is used as a block separator, but you can change it with:
$this->recovery->setBlockSeparator('|')->toJson();
Please see CHANGELOG for more information on what has changed recently.
$ composer update
$ vendor/bin/phpunit
Please see CONTRIBUTING for details.
If you discover any security related issues, please email acr@antoniocarlosribeiro.com instead of using the issue tracker.
The MIT License (MIT). Please see License File for more information.
How can I help you explore Laravel packages today?