alexgeno / phone-verification-bundle
这是一个通过 Symfony Notifier SMS 通道进行电话验证的包。任何 SMS 服务都可以用作发送者。可以使用 Redis 或 MongoDB 作为存储。
v1.0.2
2023-09-20 15:08 UTC
Requires
- php: ^8.0
- alexgeno/phone-verification: ^1.0
- symfony/console: ^6.0
- symfony/framework-bundle: ^6.0
- symfony/notifier: ^6.0
- symfony/translation: ^6.0
Requires (Dev)
- doctrine/mongodb-odm-bundle: ^4.6
- friendsofphp/php-cs-fixer: ^3.26
- m6web/redis-mock: ^5.6
- php-mock/php-mock-phpunit: ^2.7
- phpstan/phpstan: ^1.10
- predis/predis: ^2.2
- snc/redis-bundle: ^4.6
- symfony/message-bird-notifier: ^6.0
- symfony/test-pack: ^1.1
- symfony/twilio-notifier: ^6.0
- symfony/vonage-notifier: ^6.0
- symfony/yaml: ^6.0
Suggests
- doctrine/mongodb-odm-bundle: required to use MongoDB as a storage
- predis/predis: required to use Redis as a storage
- snc/redis-bundle: required to use Redis as a storage
- symfony/message-bird-notifier: required to use Messagebird as a sender's notification channel
- symfony/twilio-notifier: required to use Twilio as a sender's notification channel
- symfony/vonage-notifier: required to use Vonage as a sender's notification channel
This package is auto-updated.
Last update: 2024-09-12 08:08:16 UTC
README
在现代网站或移动应用上登录或注册通常遵循以下步骤
- 用户通过提交电话号码来启动验证
- 用户接收包含一次性密码(OTP)的短信或电话
- 用户通过提交 OTP 来完成验证
此库基于 alexeygeno/phone-verification-php 构建,并允许您设置此功能
支持的功能
要求
- Symfony 6.x
- 以下任何 SMS 服务(在 Symfony Notifier SMS Channel 中可用):symfony/vonage-notifier、symfony/twilio-notifier、symfony/message-bird-notifier 以及更多
- 以下任何支持的存储:snc/redis-bundle、doctrine/mongodb-odm-bundle
安装
composer require alexgeno/phone-verification-bundle snc/redis-bundle predis/predis symfony/vonage-notifier
注意:配置中默认使用 Redis 作为存储和 Vonage 作为 SMS 服务
使用
依赖注入
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!"}
配置
此包将自动通过 Flex 菜谱启用和配置。如果您不使用 Flex,请参阅 docs/CONFIGURATION.md 了解如何手动操作
不同的存储和 SMS 服务
要在不同存储和 SMS 服务之间切换,请安装相应的包并更新配置。例如,要使用 Mongodb 作为存储和 Twilio 作为 SMS 服务
composer require doctrine/mongodb-odm-bundle symfony/twilio-notifier
alex_geno_phone_verification: storage: driver: mongodb # ... sender: transport: twilio # ...
如果可用的选项不足,您可以通过添加自定义存储(实现 \AlexGeno\PhoneVerification\Storage\I)或/和发送者(实现 \AlexGeno\PhoneVerification\Sender\I)来操作,并使用它们来 装饰 相应的服务(alex_geno_phone_verification.sender,alex_geno_phone_verification.storage)
注意:如果您使用 Mongodb 作为存储,请参阅 docs/MIGRATIONS.md