Laravel對接阿里雲SMS發送短信驗證碼

本案例採用Laravel5.6對接阿里雲SMS發送短信驗證碼,【全乾貨】,按步驟操作即可完成。

在部署環境之前,我們需要去阿里雲平臺註冊一個賬號,個人賬號和公司賬號都可以,註冊完成後,複製access_key和access_secret配置在項目中就完成了項目的基本設置。

一. 新建項目,安裝Laravel5.6版本的框架代碼

1. 環境配置要求

Laravel 對系統有一些要求,您的服務器滿足下面的要求:

  • PHP >= 7.1.3

  • OpenSSL PHP

  • PHP PDO 擴展

  • PHP Mbstring 擴展

  • PHP Tokenizer 擴展

  • PHP XML 擴展

  • PHP Ctype 擴展

  • PHP JSON 擴展

備註:您需要達到以上的配置要求,這個就不具體詳細說明,具體看PHP語法

2. 安裝Laravel5.6框架

Laravel5.6使用 Composer 來管理項目依賴。因此,在使用 Laravel5.6之前,請確保你的機器已經安裝了 Composer

composer -v

// 未安裝composer,請參照以下網址安裝https://www.phpcomposer.com/

備註:composer具體安裝請參照上面鏈接,按文檔安裝即可.

下面我們具體安裝Larvael5.6框架,在控制窗口輸入一下內容(本人windows操作系統),等待安裝完成。

composer create-project --prefer-dist laravel/laravel blog

安裝完成後執行以下代碼,爲應用程序設置隨機字符串密鑰。

php artisan key:generate

在瀏覽器中輸入:http://localhost/blog/public/index.php,看到如下界面就是訪問正常了。

3. composer.json配置阿里雲組件包

require中添加"mrgoon/aliyun-sms": "dev-master"

“require”: {    
    “php”: “^7.1.3”,   
    “fideloper/proxy”: “^4.0”,    
    “laravel/framework”: “5.8.*”,    
    “laravel/tinker”: “^1.0”,
    "mrgoon/aliyun-sms": "dev-master"
}

然後執行命令:

composer update
composer dumpautoload


組件下載完成後,如下圖:

裏面已經有阿里雲的SDK包了,配置文件也生成了。

4、開通短信服務

1、登錄阿里雲網站,點擊短信服務,進入開通。

2、點擊國內消息

3、添加簽名

4、添加模板

 

5. 配置阿里雲access_key和access_secret配置

這裏很關鍵:我的是單獨寫了一個文件進行配置

第一步:在config/app.phpproviders下添加:

'providers'  =>  [Mrgoon\AliSms\ServiceProvider::class,],

第二步:在app/aliyunsms.php中添加配置:

return [    
    'access_key'    => env('ALIYUN_SMS_AK', '填你自己的'),     
    'access_secret' => env('ALIYUN_SMS_AS', '填你自己的'), 
],

第三步:在.env文件中配置常量

ALIYUN_ACCESSKEYID=填你自己的

文件就已經配置完成。

二. 編寫接口控制器方法

新建控制器:UploadsController 繼承 Controller類,方便操作。

第一步:編寫API路由

Route::post('/index/sendsms', '\App\Http\Controllers\Index\SmsController@index');

第二步:編寫控制器,發送短信(核心代碼)

<?php
namespace App\Http\Controllers\Index;
use  App\Http\Controllers\Controller;
use  Illuminate\Http\Request;

class  SmsController  extends  Controller  {

    public  function  index(Request $request)  {

        if  (!is_mobile($request->mobile))  {
            return  array_format('手機號格式錯誤',  414);
        }

        //發送過快驗證
        $repeat_cache_key  =  md5($request->mobile  .  $request->type  .  'repeat');

        if  (cache()->store('file')->has($repeat_cache_key))  {
            return  array_format('發送過快,請稍後再試',  414);
        }

        $mobile_code  =  rand_num(6);
        $sms  =  new  \AliSms();
        $temp  =  $sms->sendSms($request->mobile,  '填你自己的',  ['code'=>  $mobile_code]);
        if  (!$temp)  {
          return  array_format('發送短信失敗',  414);
        }
        //緩存驗證碼
        $cache_key  =  md5($request->mobile);
        cache()->store('file')->put($cache_key,  $mobile_code,  5); 
        cache()->store('file')->put($repeat_cache_key,  $mobile_code,  0.1);
        return  array_format('發送成功',  200);
    }
}

. Postman工具接口測試

瞭解更多幹貨知識請關注公衆號Laravel技術社區

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章