PHP的学习Nginx

6,PHP登陆验证码

2016-11-29  本文已影响223人  陈钢镚学财

前言


现在不论是APP应用还是WEB应用,手机验证码的使用越来越普遍。那么,今天就说说实现这个功能的整个流程。

工具


  1. 运载平台 (LNMP,LAMP,WAMP,WNMP任选其一)
  2. 阿里大于(短信签名,短信模板需要审核,另外需要记下appkey和secret,短信平台有很多,比如说百度的APIstore就整理了很多服务商)

流程


  1. 发送
PHP短信验证码发送流程.png
  1. 验证
PHP短信验证码验证流程.png

实现


  1. 创建表结构
CREATE TABLE `sms` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '主键',
  `mobile` varchar(50) NOT NULL DEFAULT '' COMMENT '手机号码',
  `code` varchar(50) NOT NULL DEFAULT '' COMMENT '验证码',
  `create_time` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '发送时间,用于控制时间限制',
  `type` tinyint(2) NOT NULL DEFAULT '0' COMMENT '短息类型 登录/注册',
  `ip` char(30) NOT NULL DEFAULT '' COMMENT '发送IP',
  `validity` int(11) NOT NULL DEFAULT '0' COMMENT '有效期',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB CHARSET=utf8 COMMENT='短信记录表';
  1. 实现与阿里大于的通讯(记得导入阿里大于提供的SDK)
如下是格式,详情可参考阿里大于开发文档
$c = new TopClient;
$c ->appkey = $appkey ;
$c ->secretKey = $secret ;
$req = new AlibabaAliqinFcSmsNumSendRequest;
$req ->setExtend( "" );
$req ->setSmsType( "normal" );
$req ->setSmsFreeSignName( "" );
$req ->setSmsParam( "" );
$req ->setRecNum( "13000000000" );
$req ->setSmsTemplateCode( "" );
$resp = $c ->execute( $req );
  1. 实现验证码入库与验证(这个根据自己的逻辑来,这里就不贴代码了)

结语


有完善的文档,开发起来事半功倍。

上一篇下一篇

猜你喜欢

热点阅读