日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能

發(fā)布時間:2024/1/8 编程问答 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

laravel 實現(xiàn)短信驗證碼功能,搜索資料發(fā)現(xiàn)比較流行的有兩個包:

一個是laravel sms 地址 ?https://github.com/toplan/laravel-sms?

一個是easy sms 地址https://github.com/overtrue/easy-sms,


經(jīng)過比較還是選擇lara sms


按照guthub readme進行


安裝:

在項目根目錄下運行如下composer命令:(如果沒有安裝composer請先安裝composer)

//推薦(博主使用的推薦選項) composer require toplan/laravel-sms:~2.6 準備工作

1.注冊服務提供器

在config/app.php文件中providers數(shù)組里加入:

Toplan\PhpSms\PhpSmsServiceProvider::class, Toplan\Sms\SmsManagerServiceProvider::class,

在config/app.php文件中的aliases數(shù)組里加入

'PhpSms' => Toplan\PhpSms\Facades\Sms::class, 'SmsManager' => Toplan\Sms\Facades\SmsManager::class,

2.參數(shù)配置

  • 生成配置文件和migration文件,分別在根目錄執(zhí)行下面兩條命令
php artisan vendor:publish --provider="Toplan\PhpSms\PhpSmsServiceProvider" php artisan vendor:publish --provider="Toplan\Sms\SmsManagerServiceProvider"

這里會在config文件夾中生成兩個配置文件,分別為phpsms.php和laravel-sms.php。database中生成migrations


  • 配置代理器參數(shù)

在config/phpsms.php的agents數(shù)組中,找到你想要使用的代理器,并填寫好配置信息。(注意阿里云的短信服務和阿里大魚不是一個東西,不要弄混了)

博主選用的阿里云的短信服務,此處配置如下


主要是修改參數(shù),阿里云短信服務,相關參數(shù)從管理后臺獲得,注意signName就是在短信服務后臺申請的簽名名稱。

獲取accessKeyId,accessKeySecret的方法請參考https://help.aliyun.com/knowledge_detail/38738.html(實際上進入控制臺點擊用戶名即可看到)

  • 代理器均衡調度

在config/phpsms.php中設置代理器的均衡調度方案。

'scheme' => [ //被使用概率為2/3 'Luosimao' => '20', //被使用概率為1/3,且為備用代理器 'YunPian' => '10 backup', //僅為備用代理器 'YunTongXun' => '0 backup', ]; 調度方案解析:?如果按照以上配置,那么系統(tǒng)首次會嘗試使用LuosimaoYunPian發(fā)送短信,且它們被使用的概率分別為2/31/3。 如果使用其中一個代理器發(fā)送失敗,那么會啟用備用代理器,按照配置可知備用代理器有YunPianYunTongXun,那么會依次調用直到發(fā)送成功或無備用代理器可用。 值得注意的是,如果首次嘗試的是YunPian,那么備用代理器將會只會使用YunTongXun,也就是會排除使用過的代理器。 如果只使用阿里云短信服務,設置如下

發(fā)送前數(shù)據(jù)驗證(沒有特殊要求的話使用默認設置就好了,不做詳細解釋了)

如果需要再去自己看說明及測試。

驗證碼模塊

1. [服務器端]配置短信內容/模板

阿里云使用的是模板ID

模版id

如果你使用了模板短信,需要配置到使用到的代理器的模板標示符。

配置文件為config/laravel-sms.php

'templates' => [ 'YunTongXun' => '短信模版id', 'Alidayu' => ['短信模版id', '語音模版id'], ]具體配置如下
需要到控制臺中找短信模板ID

2. [瀏覽器端]請求發(fā)送驗證碼短信

laravel-sms.js文件放入公共目錄,并在使用驗證碼文件中引入<script src="/path/to/laravel-sms.js"></script>為發(fā)送按鈕添加擴展方法 <script> $('#sendVerifySmsButton').sms({ //laravel csrf token token : "{{csrf_token()}}", //請求間隔時間 interval : 60, //請求參數(shù) requestData : { //手機號 mobile : function () { return $('input[name=mobile]').val(); }, //手機號的檢測規(guī)則 mobile_rule : 'mobile_required' } }); </script>

3. [服務器端]合法性驗證(根據(jù)需要驗證,此處不做詳解)

數(shù)據(jù)庫日志

生成數(shù)據(jù)表

在根目錄下運行如下命令在數(shù)據(jù)庫中生成laravel_sms表。(數(shù)據(jù)庫中會新生成一張表laravel_sms表)

php artisan migrate

2. 開啟權限

在配置文件config/laravel-sms.php中設置dbLogs為true。

'dbLogs' => true,

短信隊列(本文為了實現(xiàn)基礎功能,此處先不做詳解)

其它不影響基本功能的實現(xiàn),先不詳細解釋。此時返回前端,點擊發(fā)送驗證碼,手機就可以收到驗證碼了,在后臺寫相應邏輯。


遇到錯誤 Class 'Toplan\PhpSms\PhpSmsServiceProvider' not found
解決方法:在本地測試可能不會出現(xiàn)這樣的問題,上線就會出現(xiàn)這樣的問題,推論:1少相關文件2權限問題。最后發(fā)現(xiàn)一些執(zhí)行php artisan命令產生的一些文件沒有添加到svn控制中去,添加,然后再產生的service.php文件所在目錄權限有點問題,修改為777,問題解決。

遇到錯誤,總是提示驗證碼錯誤請重新發(fā)送解決方法:使用不同的阿里云短信服務賬號,一個是正常的,一個總是錯誤,判斷程序沒有什么問題,應該是修改的三個參數(shù)Access Key ID? Access Key Secret 'templates' => ['Aliyun' ? ?=> '',], 其中之一有問題,后來發(fā)現(xiàn)此擴展包驗證碼用的變量code而模板中用了number,重新申請模板,問題解決。











參考文章:https://laravel-china.org/topics/1612/laravel-sms-v2-new-reconstruction-from
https://packagist.org/packages/toplan/phpsms



總結

以上是生活随笔為你收集整理的laravel5.4使用Laravel Sms和阿里云短信服务实现短信验证码功能的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。