php短信验证 免费_PHP 短信验证码

业务操作流程:输入手机号,发送验证码,收到验证码填写提交验证。常用于短信登录和手机号注册账号。

1443a7e78863

PHP 短信验证码

一、购买短信验证码搭建接口

填写购买的 $appcode等信息,我们只写了随机生成一个六位数,经过加密变成 token 下发给浏览器。

$host = "http://yzxtz.market.alicloudapi.com";

$path = "/yzx/notifySms";

$method = "POST";

$appcode = "8ae5612c0e7f4d2ba70ae79e1490bf88";

$headers = array();

array_push($headers, "Authorization:APPCODE " . $appcode);

// 随机6位数

$shu = rand(100000, 999999);

$querys = "phone=".$_GET['phone']."&templateId=TP18040316&variable=num%3A0000%2Cmoney%3A" . $shu;

$bodys = "";

$url = $host . $path . "?" . $querys;

$curl = curl_init();

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, $method);

curl_setopt($curl, CURLOPT_URL, $url);

curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);

curl_setopt($curl, CURLOPT_FAILONERROR, false);

curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);

curl_setopt($curl, CURLOPT_HEADER, true);

if (1 == strpos("$".$host, "https://"))

{

curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);

curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);

}

curl_exec($curl);

// 向前端反馈加密的结果

$token = md5(md5(md5($shu. '谁也不知道我是用的密令是啥?')));

echo '{"token": "' . $token .'"}';

?>

二、前端页面搭建

验证码登录

.container{

width: 500px;

padding-top:10px;

}

请输入手机号码:

请输入短信验证码:

{{yifa ? `已经发送,重新发送(${time})` : '发送验证码'}}

提交

new Vue({

el: '#app',

data: {

phone: '',

time: 6,

yifa: false,

yzm: '',

token: ''

},

methods: {

fsyzm(){

this.yifa = true;

// 定时器

this.timer = setInterval(()=>{

this.time --;

if(this.time === 0){

this.yifa = false;

this.time = 6;

}

},1000)

axios.get('/fasong.php?phone=' + this.phone).then(data=>{

// 后端负责发验证码,你负责把token存起来

this.token = data.data.token;

});

},

tj(){

axios.get('/check.php?shu=' + this.yzm + '&token=' + this.token ).then(data=>{

if(data.data === 'ok'){

alert('成功')

}else{

alert('失败')

}

});

}

}

});

三、提交验证

上一步手机收到的验证码会同时经过加密下发给浏览器,我们在页面把手机验证码填写进去,Ajax 请求会携带 token 和填写的验证码,在我们的服务端再次对填写的验证码进行同样的加密,并和携带的 token 进行对比,相等表示登录成功!

$token = $_GET['token'];

$shu = $_GET['shu'];

// 再次加密,比对

if(md5(md5(md5($shu.'谁也不知道我是用的密令是啥?'))) === $token){

echo 'ok';

}else{

echo 'nook';

}

?>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值