利用laravel怎么实现一个短信验证码功能

  介绍

今天就跟大家聊聊有关利用laravel怎么实现一个短信验证码功能,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。

流程如下:

利用laravel怎么实现一个短信验证码功能

<强>在阿里云上开通短信服务后需要做的:

1,申请签名,2、申请模板,,3、创建Accesskey,值得说的是,可以通过阿里云提供的子用户进行Accesskey的创建,这样可以更安全,4、充值

laravel有很多的进行短信业务的扩展包,之前我用的是阿里大于,使用如下:

1,从终端或者命令进入您的项,运行:<代码>作曲家要求或弹性体/alisms-for-laravel

2,将:<代码>或弹性体\ Alisms \ AlidayuServiceProvider::类>

利用laravel怎么实现一个短信验证码功能

3,运行:<代码> php工匠供应商:发布> & lt; php ?   ,return  [   & # 39;才能关键# 39;,=祝辞env (& # 39; ALISMS_KEY& # 39;, null),   & # 39;才能SECRETKEY& # 39;=祝辞env (& # 39; ALISMS_SECRETKEY& # 39;, null),   以前,];

, 4,在。env文件中写入:

ALISMS_KEY=23305789   ALISMS_SECRETKEY=* * * * * * * * * * * * * *

<强>,注意: ALISMS_KEY和ALISMS_SECRETKEY就是阿里云生成的访问秘钥成对(AccessKeyId与AccessKeySecret)

<强>开始使用:

, 1,在您需要调用短信服务的控制器中引入短信:

<代码>使用或弹性体\ Alisms \ SendsmsPusher短信;

public  function  __construct (Sms  SMS)美元   ,{   这→美元才能短信=$短信;   ,}      ,public  function 指数()   ,{   结果=这美元才能→sms→发送(“phone"美元;,“name"美元;,“content"美元;,“code"美元;);   以前,}

参数说明:电话美元,美元的名字,内容美元,美元代码

<李>

$电话指接受短信方的短信号码,

<李>

名称指美元短信签名可以在阿里大鱼短信签名http://www.alidayu.com/admin/service/sign找到

<李>

$内容是指短信模板中的变量内容。举个例子

在自己的阿里大鱼模板里面有下面一个短信模板

模板名称:身份验证验证码

模板ID: SMS_3910275

*模板内容:验证码(代码)美元,您正在进行${产品}身份验证,打死不要告诉别人哦!

那么对应的我们的美元内容就应该为

,{   代码:“才能生成的验证码“,   产品:“才能示例项目,   以前,}

到此就可以正常使用,但是不知道为什么,我在使用过程中,控制台返回了代码=11的错误码,在淘宝上查证后是因为isv权限的问题,之后我在阿里云上将用户的权限控制开到了最大,但是依旧会出现这个错误,换了一个扩展包还是这个问题,到现在还没有解决,于是我就在laravel中写原生的。

首先从阿里云官网上下载关于短信服务的sdk包

sdk工具包中一共包含了2个类库,一个aliyun-php-sdk-core包,另外一个是alicom-dysms-api包,将这两个包添加到工程类库中依赖。

选择PHP版本的sdk包将压缩包解压,里面有四个文件夹:api_demo, api_sdk, msg_demo, msg_sdk

在laravel项目的程序文件夹下新建一个名为填词的文件夹,将api_sdk和msg_sdk复制到填词文件夹下。

找到根目录下的composer.json文件,找到作曲家。json中定义的classmap选项,写入引入的两个包:

利用laravel怎么实现一个短信验证码功能

终端进入项目文件夹中运行:

composer  dumpautoload

这样子就在laravel中引入了第三方类库。

创建代码文件

我将其简单的封装了一下:

& lt; php ?   ,//namespace 应用程序控制器\ Http \ \短信;   王坚,use  \ \核心配置;   王坚,use 核心\概要文件\ \ DefaultProfile;   王坚,use  \ \ DefaultAcsClient核心;   王坚,use  \ Api请求\手机\ \ V20170525 \ SendSmsRequest;   王坚,use  \ Api请求\手机\ \ V20170525 \ QuerySendDetailsRequest;   ,use  \ App \ Http \控制器控制器;      ,//加载区域结点配置   ,配置:负载();   ,class  SmsController  extends  Controller    ,{      ,/* *   ,,*,构造器   ,,*,@param  string  accessKeyId 美元;必填,AccessKeyId   ,,*,@param  string  accessKeySecret 美元;必填,AccessKeySecret   ,,*/public 才能;function  __construct ($ accessKeyId=? # # # # #“, $ accessKeySecret=? # # # # # #“)   {才能//,,,短信API产品名   ,,,product 美元;=,“Dysmsapi";//,,,短信API产品域名   ,,,domain 美元;=,“dysmsapi.aliyuncs.com";   ,,,//,暂时不支持多地区   ,,,region 美元;=,“cn-hangzhou";   ,,,//,服务结点   ,,,endPointName 美元;=,“cn-hangzhou";   ,,,//,初始化用户资料实例   ,,,profile 美元;=,DefaultProfile: getProfile (accessKeyId美元美元地区,,,,accessKeySecret美元);   ,,,//,增加服务结点   ,,,DefaultProfile: addEndpoint (endPointName美元,美元地区,产品,美元,美元域);      ,,,//,初始化AcsClient用于发起请求   ,,,这个→美元acsClient =, new  DefaultAcsClient ($);   ,,}         ,/* *   ,,*,发送短信范例   ,,*,@param [型],phoneNumbers 美元;必填,,短信接收号码   ,,*,@param  string  signName 美元;必填,,短信签的名,应严格“签名名称“填写,   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

利用laravel怎么实现一个短信验证码功能