天天看点

阿里云活体人脸验证_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
           
阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

// 未安装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,看到如下界面就是访问正常了。

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码
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 updatecomposer dumpautoload
           
阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

组件下载完成后,如下图:

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

里面已经有阿里云的SDK包了,配置文件也生成了。

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

4、开通短信服务

1、登录阿里云网站,点击短信服务,进入开通。

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

2、点击国内消息

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

3、添加签名

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码

4、添加模板

阿里云活体人脸验证_Laravel对接阿里云SMS发送短信验证码
5. 配置阿里云access_key和access_secret配置

这里很关键:我的是单独写了一个文件进行配置

第一步:在config/app.php的providers下添加:

'providers'  =>  [MrgoonAliSmsServiceProvider::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', '[email protected]');
           

第二步:编写控制器,发送短信(核心代码)

<?phpnamespace AppHttpControllersIndex;use  AppHttpControllersController;use  IlluminateHttpRequest;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对接阿里云SMS发送短信验证码

了解更多干货知识请关注公众号(Laravel技术社区)