资讯专栏INFORMATION COLUMN

Laravel SMS 短信发送包

Seay / 925人阅读

摘要:支持短信验证码未验证时,用户再次请求验证码,在有效分钟内验证码保持一致。集成短信发送路由,支持和发送方式。有效期为分钟,请尽快验证。

Laravel Sms

Laravel 贴合实际需求同时满足多种通道的短信发送组件

我们基于业务需求在 overtrue/easy-sms 基础进行扩展开发,主要实现如下目标:

支持短信验证码直接在 config 中配置模板ID

支持短信验证码自定义长度

支持短信验证码有效分钟,默认5分钟

支持短信验证码重试次数,防止用户意外输错验证码导致需要再次发送验证码的问题。

支持短信验证码未验证时,用户再次请求验证码,在有效分钟内验证码保持一致。

集成短信发送路由,支持 web 和 api 发送方式。

支持验证码调试,debug 模式下可直接查询手机号目前有效的验证码

支持验证码发送记录到数据库,方便查看发送日志和错误原因

包地址:ibrand/laravel-sms

TODO:

支持语音验证码

安装
composer require ibrand/laravel-sms:~1.0 -vvv

低于 Laravel5.5 版本

config/app.php 文件中 "providers" 添加

iBrandSmsServiceProvder::class

config/app.php 文件中 "aliases" 添加

"Sms"=> iBrandSmsFacade::class
使用 发送验证码

实现了发送短信验证码路由,支持 web 和 api ,可以自定义路由的 prefix。

"route" => [
        "prefix" => "sms",
        "middleware" => ["web"],
    ],
    
or

"route" => [
        "prefix" => "sms",
        "middleware" => ["api"],
    ],

POST请求 http://your.domain/sms/verify-code

参数:mobile

备注:为了支持开发时的调试,在发送验证码时不去验证手机号本身的有效性,请在发送验证码前自行验证。

返回参数:

{
    "status": true,
    "message": "短信发送成功"
}
验证验证码
    use iBrandSmsFacade as Sms;
    

    if (!Sms::checkCode(
equest("mobile"), 
equest("code"))) {
            //Add you code.
        }
配置模板 ID

config/ibrand/sms.phpgateways 参数可以直接添加 code_template_id 来配置模板 id

    // 可用的网关配置
        "gateways" => [

            "errorlog" => [
                "file" => "/tmp/easy-sms.log",
            ],

            "yunpian" => [
                "api_key" => "824f0ff2f71cab52936axxxxxxxxxx",
            ],

            "aliyun" => [
                "access_key_id" => "dalvTXXX",
                "access_key_secret" => "XXXX",
                "sign_name" => "阿里云短信测试专用",
                "code_template_id" => "SMS_80215252"
            ],

            "alidayu" => 
                //...
            ],
        ],
配置 Content

非模板类通道,可以通过 config/ibrand/sms.php 自定义短信内容

"content" => "【your signature】亲爱的用户,您的验证码是%s。有效期为%s分钟,请尽快验证。"

debug

在实际开发中会存在并不用真实发出验证码的情况,因此在 debug 模式下,可以通过

http://your.domain/api/sms/info?mobile=1898888XXXX 来直接只看某个手机号当前有效验证码信息。

欢迎大家 star 和提交 issue   :)
讨论交流

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/28129.html

相关文章

  • 灵活靠谱高效的短信发送 laravel-sms

    由于前段时间自己在多个项目里都有发送短信的需求,导致我需要在每个项目里面重复写短信发送,发送结果管理,以及验证码校验等功能。 所以萌生了要为laravel量身打造一个综合性的短信发送包。该包初步构想的是能支持多种第三方服务商(如云片,云通讯,Luosimao等),并集成短信发送以及验证码短信发送/校验模块。 后来在phphub上看到有人提出如果短信发送不成功或者被审核了, 调用另一个服务商的来...

    Joonas 评论0 收藏0
  • 如何在 Laravel 中 “规范” 的开发验证码发送功能【社交系统ThinkSNS研发日记十一】

    摘要:需求场景发送验证码或者消息通知,可发送到手机或邮箱中。完成首先,在中的规范就是使用的消息通知,这里基于场景为验证码。所以我们在验证码模型中添加是完全符合通知的正确使用的。 顺便发个小通知:7月15日ThinkSNS+开源版发布,同时非开源的APP也走出内测阶段,体验二维码也全面发布体验。 什么是ThinkSNS ? ThinkSNS(简称TS),一款全平台综合性社交系统,为国内外大中小...

    Flands 评论0 收藏0
  • laravel-sms luosimao服务发送短信失败

    摘要:在用短信扩展的时候发现怎么发送短信返回值为最后发现是因为包里面里面的地址用的的格式而官方给的文档则是 showImg(https://segmentfault.com/img/remote/1460000008528722?w=1279&h=623);在用laravel-sms短信扩展的时候发现lusoimao怎么发送短信返回值为 [ { driver: Luo...

    BetaRabbit 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<