Cara melaksanakan dalam PHP untuk menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk
Dengan populariti telefon pintar, telefon bimbit telah menjadi salah satu alat yang amat diperlukan dalam kehidupan kita. Dalam laman web atau aplikasi, menyediakan pengguna dengan kod pengesahan telefon mudah alih dan fungsi pemberitahuan SMS bukan sahaja boleh meningkatkan keselamatan pengguna, tetapi juga meningkatkan pengalaman pengguna. Artikel ini akan memperkenalkan cara melaksanakan fungsi menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk dalam PHP, dan memberikan contoh kod khusus.
Pertama, kita perlu menggunakan pembekal antara muka SMS pihak ketiga. Dalam contoh ini, kami memilih untuk menggunakan perkhidmatan SMS yang disediakan oleh Alibaba Cloud.
Selepas mendaftar akaun pada Perkhidmatan SMS Awan Alibaba dan mengaktifkan perkhidmatan SMS, kami boleh mendapatkan kunci akses untuk pengesahan kebenaran dalam kod. Untuk langkah pengaktifan khusus, sila rujuk dokumentasi bantuan Alibaba Cloud.
Seterusnya, kami boleh menulis fail send_sms_code.php untuk mengendalikan logik penghantaran kod pengesahan.
<?php require_once 'aliyun-php-sdk-core/Config.php'; // 引入阿里云SDK库 $accessKeyId = 'your_access_key_id'; // 替换成你的AccessKeyId $accessKeySecret = 'your_access_key_secret'; // 替换成你的AccessKeySecret $signName = 'your_sign_name'; // 替换成你的短信签名名称 $templateCode = 'your_template_code'; // 替换成你的短信模板CODE // 生成一个6位随机数字验证码 $code = rand(100000, 999999); // 将手机号码和验证码存储到Session中,用于后续验证 $_SESSION['sms_code'] = $code; $_SESSION['phone_number'] = $_POST['phone_number']; // 发送短信验证码 $data = array( 'PhoneNumbers' => $_POST['phone_number'], 'SignName' => $signName, 'TemplateCode' => $templateCode, 'TemplateParam' => json_encode(array('code' => $code)), // 模板参数 ); // 使用阿里云SDK发送短信 $profile = DefaultProfile::getProfile('cn-hangzhou', $accessKeyId, $accessKeySecret); $client = new DefaultAcsClient($profile); $request = new DysmsapiRequestV20170525SendSmsRequest(); $request->setPhoneNumbers($data['PhoneNumbers']); $request->setSignName($data['SignName']); $request->setTemplateCode($data['TemplateCode']); $request->setTemplateParam($data['TemplateParam']); $response = $client->getAcsResponse($request); // 返回发送结果(示例中只简单返回成功或失败) if ($response->Code == 'OK') { echo json_encode(array('status' => 'success', 'message' => '验证码发送成功')); } else { echo json_encode(array('status' => 'error', 'message' => $response->Message)); } ?>
Dalam kod di atas, kami mula-mula mendapatkan nombor telefon mudah alih yang dimasukkan oleh pengguna dan kod pengesahan yang dijana, dan menyimpannya dalam Sesi. Kemudian, kami menggunakan SDK Perkhidmatan SMS Awan Alibaba untuk menghantar mesej teks. Antaranya, $accessKeyId, $accessKeySecret, $signName dan $templateCode ialah bukti kelayakan dan maklumat templat perkhidmatan SMS Awan Alibaba yang dinyatakan di atas.
Hasil penghantaran yang dikembalikan adalah output dalam format JSON untuk pemprosesan halaman hadapan.
Kami boleh menulis fail check_sms_code.php untuk mengendalikan logik pengesahan kod pengesahan.
<?php session_start(); $enteredCode = $_POST['code']; // 用户输入的验证码 $storedCode = $_SESSION['sms_code']; // 存储在Session中的验证码 if ($enteredCode == $storedCode) { // 验证码验证通过,执行用户登录逻辑 // TODO: 执行用户登录逻辑 echo json_encode(array('status' => 'success', 'message' => '验证码验证通过')); } else { // 验证码验证失败 echo json_encode(array('status' => 'error', 'message' => '验证码验证失败')); } ?>
Dalam kod di atas, kami mendapat kod pengesahan yang disimpan daripada Sesi dan kemudian membandingkannya dengan kod pengesahan yang dimasukkan oleh pengguna. Jika ia sepadan, kod pengesahan dianggap telah lulus pengesahan dan logik log masuk pengguna yang sepadan boleh dilaksanakan. Jika tidak, pengesahan kod pengesahan dianggap gagal.
Melalui contoh kod di atas, kami boleh melaksanakan fungsi menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk dalam PHP. Sudah tentu, mungkin terdapat logik yang lebih kompleks dalam aplikasi sebenar, tetapi prinsip dan kaedah asas adalah sama. Harap artikel ini membantu anda!
Atas ialah kandungan terperinci Cara menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk dalam PHP. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!