现在很多平台都使用邮箱验证来进行登录验证,既快捷又安全。 有许多平台提供电子邮件验证服务。 相比之下,阿里巴巴更便宜,速度也更快,所以在PHP教学中,经常以此作为例子来说明电子邮件。 使用验证。 下面我们讲解一下如何在tp5中使用阿里巴巴进行邮箱验证。
1. 首先,在阿里巴巴平台注册并创建应用程序。
阿里的地址是:点击免费签到,然后注册。 注册完成后,进入管理中心。 如右图所示,在左侧导航栏中选择“应用管理”,然后在左侧内容窗口中选择“创建应用”。
在右侧导航栏中选择应用管理-应用列表。 然后在左侧窗口中选择“创建应用程序”。
创建完成后,您可以获得应用程序的appkey和appsecret。 这两件事非常重要。
然后在右侧导航栏选择SDK下载,在左侧窗口选择php版本。
下载后解压,得到以下文件:
在所提供的文件中,只有以下文件就足够了:
我们把这种文件放到tp5的extend目录下,建一个文件夹alidayu,把所有文件都放到这个文件夹里。
之后,返回阿里巴巴,在两侧导航栏中选择配置管理-验证码jquery的验证手机号码,然后在左侧窗口中可以看到两个选项:配置邮件签名和配置邮件模板。
1. 首先配置邮件签名。 这是必要的。 界面如下。 根据自己的需要来选择。 对于个人使用,只需选择第一个。
2. 配置电子邮件模板。
选择配置电子邮件模板jquery的验证手机号码,然后添加模板:
这里,模板的内容是重点。 例如,验证码电子邮件通常有一个随机数。 如何表示这个随机数呢? 使用${number}来表示,其中${number}是PHP中对应的变量。 使用几个就定义几个就可以了,上面的{}就是变量的名字。 配置完成后,如右图:
关键是模板ID,它是在程序代码中使用的。
2. tp5中引用
1、项目的目录结构
如果要在项目中引用extend下alidayu下的几个类,则必须给这些类添加命名空间。
2.为下载的文件添加命名空间
tp5中的类加载采用手动加载,并且是根据命名空间来加载的。 因此,必须定义命名空间供下载的多个类文件引用,并且命名空间必须与目录一致。
3、在控制器中引用验证码类
如果编译时提示找不到TopClient类,可以在application下的config.php中更改:
添加命名空间和文件夹的比较,一切就ok了。
4. 如何编写邮箱验证码
//短信验证
public function sendSMS()
{
if (request()->isAjax()) {//如果是ajax请求
$tel = input('mobile');//手机号
$c = new TopClient;//大于客户端
$c->format = 'json';//设置返回值得类型
$c->appkey = "23885965";//阿里大于注册应用的key
$c->secretKey = "ccd724869075d0d740806302b664bb86";//注册的secretkey
//请求对象,需要配置请求的参数
$req = new AlibabaAliqinFcSmsNumSendRequest;
$req->setExtend("123456");//公共回传参数,可以不传
$req->setSmsType("normal");//短信类型,传入值请填写normal
//签名,阿里大于-控制中心-验证码--配置签名 中配置的签名,必须填
$req->setSmsFreeSignName("自己的签名");//根据前面配置短信签名里的前面做相应的修改
//你在短信中显示的验证码,这个要保存下来用于验证
$num = rand(100000,999999);
session('code',$num);//保存到session
//短信模板变量,传参规则{"key":"value"},key的名字须和申请模板中的变量名一致,传参时需传入{"code":"1234","product":"alidayu"}
$req->setSmsParam("{"number":"$num"}");//模板参数
//短信接收的手机号码,可以有多个,具体参照大于号帮助文档。
$req->setRecNum($tel);
//短信模板。阿里大于-控制中心-验证码--配置短信模板 必须填
$req->setSmsTemplateCode("SMS_69685034");//根据前面配置模板是生成的模板ID修改
$resp = $c->execute($req);//发送请求
return $resp;
}
}
3.html文件
用户注册
*{margin: 0px;padding: 0px;}
.content{width: 360px;background: pink;}
.title{text-align: center;font-size: 18px;width:100%;height: 30px;line-height: 30px;}
.register{height: 30px;line-height: 30px;width: 60px;text-align: center;float: right;}
a{text-decoration: none;}
.middle{width: 360px;}
.headimage{width: 100%;}
.headimage p{text-align: center;}
.middle input{display: block;width: 98%;margin: 0px auto;height: 30px;}
.middle input[type='submit']{margin-top: 20px;}
.middle form .code{display: inline-block;width: 75%;height: 30px;}
.middle form button{width: 22%;height: 32px;}
注册
书非借不能读
//验证手机号
$("#mobile").blur(function(){
var value = $(this).val();
console.log(value,typeof value);
if ( 0 == value.lenght || "" == value) {
//alert("手机号不能为空!")
$(this).focus();
} else {
$.post('/index/user/validPhone',{phone:value},function(data){
if (data) {
alert("手机号重复!");
}
});
}
});
var InterValObj; //timer变量,控制时间
var count = 60; //间隔函数,1秒执行
var curCount;//当前剩余秒数
var code = ""; //验证码
var codeLength = 6;//验证码长度
$('#sendmsg').click(function () {
var phone = $("#mobile").val();
console.log(phone);
$.ajax({
type: "POST",
url: "/index/user/sendSMS",
data: "mobile="+$("#mobile").val() ,
success: function (data) {
console.log(data);
//data.result && data.result.success
if(data){
curCount = count;
//设置button效果,开始计时
$("#sendmsg").css("background-color", "LightSkyBlue");
$("#sendmsg").attr("disabled", "true");
$("#sendmsg").html("获取" + curCount + "秒");
InterValObj = window.setInterval(SetRemainTime, 1000); //启动计时器,1秒执行一次
// alert("验证码发送成功,请查收!");
}
},
dataType: 'json'
});
return false;
})
function SetRemainTime() {
if (curCount == 0) {
window.clearInterval(InterValObj);//停止计时器
$("#sendmsg").removeAttr("disabled");//启用按钮
$("#sendmsg").css("background-color", "");
$("#sendmsg").html("重发验证码");
code = ""; //清除验证码。如果不清除,过时间后,输入收到的验证码依然有效
}
else {
curCount--;
$("#sendmsg").html("获取" + curCount + "秒");
}
}
发表评论