TP6----------阿里云短信包验证码登录
生活随笔
收集整理的這篇文章主要介紹了
TP6----------阿里云短信包验证码登录
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先開通阿里云短信包,之后申請短信包簽名,這里大家自行去阿里云申請
安裝阿里云sdk
composer require alibabacloud/dysmsapi-20170525 2.0.9首先創(chuàng)建Sample類方便調(diào)用,我們需要有短信簽名,簽名模板,阿里云keyId和accessKeySecret
阿里云key在阿里云首頁,右上角有個acesskey管理就可以看到
Sample.php文件
<?php /***Created by giveLive*user:lingm*Date:2022/6/15*timer:下午 9:59*Atom:現(xiàn)在的努力是為了小時候吹過的NB**/namespace app\index\controller;use AlibabaCloud\SDK\Dysmsapi\V20170525\Dysmsapi;use Darabonba\OpenApi\Models\Config; use AlibabaCloud\SDK\Dysmsapi\V20170525\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 = "dysmsapi.aliyuncs.com";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, //控制器層的接收的手機(jī)號"signName" => "", //短信簽名"templateCode" => "", //短信模板"templateParam" => json_encode($code), //驗(yàn)證碼]);$resp = $client->sendSms($sendSmsRequest);if (!$resp){return false;}return $resp;}}業(yè)務(wù)邏輯層生成隨機(jī)驗(yàn)證碼
public static function code(){//生成一個隨機(jī)的6位數(shù)字驗(yàn)證碼$code = rand(10000,999999);return $code;}控制器層驗(yàn)證登錄
<?php /***Created by giveLive*user:lingm*Date:2022/6/15*timer:下午 10:12*Atom:現(xiàn)在的努力是為了小時候吹過的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("參數(shù)錯誤");}//驗(yàn)證用戶是否存在 ,大家自行僬僥//.............//$data['create_at'] = date('Y-m-d H:i:s',time());$data['ip'] = $this->request->ip();//調(diào)用生成的隨機(jī)驗(yàn)證碼$getCode = Number::code();//將生成的驗(yàn)證碼放入緩存中Cache::store("redis")->set($data['phone'],$getCode);$sendCode = Sample::main($data['phone'],$getCode);//判斷輸入的驗(yàn)證碼是否正確$checkCode = Cache::store("redis")->get($data['phone']);if ($code !== $checkCode){$this->error("驗(yàn)證碼錯誤");}//登錄成功//........//} }至此短信驗(yàn)證登錄完結(jié)束
注意 最好這個代碼上傳到服務(wù)器驗(yàn)證,而且請求協(xié)議要https,否則可能會出現(xiàn)問題,寶塔面板可以免費(fèi)申請ssl
總結(jié)
以上是生活随笔為你收集整理的TP6----------阿里云短信包验证码登录的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Logstash:如何处理 Logsta
- 下一篇: JavaWeb项目 学生后台管理系统