1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > TP6----------阿里云短信包验证码登录

TP6----------阿里云短信包验证码登录

时间:2023-07-07 01:31:15

相关推荐

TP6----------阿里云短信包验证码登录

首先开通阿里云短信包,之后申请短信包签名,这里大家自行去阿里云申请

安装阿里云sdk

composer require alibabacloud/dysmsapi-0525 2.0.9

首先创建Sample类方便调用,我们需要有短信签名,签名模板,阿里云keyId和accessKeySecret

阿里云key在阿里云首页,右上角有个acesskey管理就可以看到

Sample.php文件

<?php/***Created by giveLive*user:lingm*Date:/6/15*timer:下午 9:59*Atom:现在的努力是为了小时候吹过的NB**/namespace app\index\controller;use AlibabaCloud\SDK\Dysmsapi\V0525\Dysmsapi;use Darabonba\OpenApi\Models\Config;use AlibabaCloud\SDK\Dysmsapi\V0525\Models\SendSmsRequest;class Sample{/*** 使用AK&SK初始化账号Client* @param string $accessKeyId* @param string $accessKeySecret* @return Dysmsapi Client*/public static function createClient($accessKeyId, $accessKeySecret){$config = new Config([// 您的AccessKey ID"accessKeyId" => $accessKeyId,// 您的AccessKey Secret"accessKeySecret" => $accessKeySecret]);// 访问的域名$config->endpoint = "";return new Dysmsapi($config);}/*** @param string[] $data* @return void*/public static function main($phone,$code){$code = ["code"=>$code];// $client = self::createClient("LTAI5tJhF874FTXC1RnVGm1m", "NNdztlLo3SfJGWjsjX2HrLbez0slzT");$client = self::createClient("", ""); // 阿里云key和accesecret$sendSmsRequest = new SendSmsRequest(["phoneNumbers" => $phone, //控制器层的接收的手机号"signName" => "", //短信签名"templateCode" => "", //短信模板"templateParam" => json_encode($code), //验证码]);$resp = $client->sendSms($sendSmsRequest);if (!$resp){return false;}return $resp;}}

业务逻辑层生成随机验证码

public static function code(){//生成一个随机的6位数字验证码$code = rand(10000,999999);return $code;}

控制器层验证登录

<?php/***Created by giveLive*user:lingm*Date:/6/15*timer:下午 10:12*Atom:现在的努力是为了小时候吹过的NB**/namespace app\index\controller;use think\admin\Controller;use think\facade\Cache;class PhoneLogin extends Controller{public function index(){$data['phone'] = $this->request->param("phone");$code = $this->request->param("code");if (empty($data['phone']) || empty($code)){$this->error("参数错误");}//验证用户是否存在 ,大家自行僬侥//.............//$data['create_at'] = date('Y-m-d H:i:s',time());$data['ip'] = $this->request->ip();//调用生成的随机验证码$getCode = Number::code();//将生成的验证码放入缓存中Cache::store("redis")->set($data['phone'],$getCode);$sendCode = Sample::main($data['phone'],$getCode);//判断输入的验证码是否正确$checkCode = Cache::store("redis")->get($data['phone']);if ($code !== $checkCode){$this->error("验证码错误");}//登录成功//........//}}

至此短信验证登录完结束

注意 最好这个代码上传到服务器验证,而且请求协议要https,否则可能会出现问题,宝塔面板可以免费申请ssl

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。