alexgeno/phone-verification-bundle
Signing in or signing up on a modern website or mobile app typically follows these steps:
This library is built on top of alexeygeno/phone-verification-php and allows to set this up
composer require alexgeno/phone-verification-bundle snc/redis-bundle predis/predis symfony/vonage-notifier
Note: Redis as a storage and Vonage as an SMS service are defaults in the configuration
public function initiate(\AlexGeno\PhoneVerification\Manager\Initiator $manager)
{
$manager->initiate('+15417543010');
}
public function complete(\AlexGeno\PhoneVerification\Manager\Completer $manager)
{
$manager->complete('+15417543010', 1234);
}
bin/console phone-verification:initiate --to=+15417543010
bin/console phone-verification:complete --to=+15417543010 --otp=1234
curl -X POST localhost/phone-verification/initiate/+15417543010
{"ok":true,"message":"Sms has been sent. Check your Phone!"}
curl -X POST localhost/phone-verification/complete/+15417543010/1234
{"ok":true,"message":"The verification is done!"}
The bundle will be automatically enabled and configured by a Flex recipe. In case you don't use Flex, see docs/CONFIGURATION.md on how to manually do it
To switch between available storages and SMS services, install the respective package and update the configuration. For example, to use Mongodb as a storage and Twilio as an SMS service:
composer require doctrine/mongodb-odm-bundle symfony/twilio-notifier
alex_geno_phone_verification:
storage:
driver: mongodb
# ...
sender:
transport: twilio
# ...
If the available options are not sufficient, you can add a custom storage (implementing \AlexGeno\PhoneVerification\Storage\I) or/and a sender (implementing \AlexGeno\PhoneVerification\Sender\I), and decorate the respective services (alex_geno_phone_verification.sender, alex_geno_phone_verification.storage) with them
Note: if you use Mongodb as a storage take a look at docs/MIGRATIONS.md
How can I help you explore Laravel packages today?