Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Cara menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk dalam PHP

Cara menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk dalam PHP

王林
王林asal
2023-09-25 10:07:431202semak imbas

Cara menghantar kod pengesahan telefon mudah alih dan pemberitahuan SMS apabila pengguna log masuk dalam PHP

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.

  1. Penjanaan dan penghantaran kod pengesahan telefon bimbit
    Di halaman log masuk pengguna, kami biasanya menyediakan kotak input untuk memasukkan nombor telefon bimbit. Selepas pengguna memasukkan nombor telefon bimbit dan mengklik butang Hantar Kod Pengesahan, sistem akan menjana kod pengesahan dan menghantar kod pengesahan ke nombor telefon bimbit yang dimasukkan oleh pengguna.

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.

  1. Pengesahan kod pengesahan apabila pengguna log masuk
    Selepas pengguna memasukkan nombor telefon mudah alih dan kod pengesahan, dan mengklik butang log masuk, kami perlu mengesahkan sama ada kod pengesahan yang dimasukkan oleh pengguna sepadan dengan kod pengesahan yang dihantar sebelum ini untuk memastikan kesahihan identiti pengguna.

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn