Maison > Article > développement back-end > Comment utiliser PHP pour implémenter la fonction de code de vérification SMS
Comment utiliser PHP pour implémenter la fonction de code de vérification SMS
Le code de vérification SMS est désormais une méthode de vérification d'identité couramment utilisée. Qu'il s'agisse d'enregistrer un compte, de récupérer un mot de passe ou d'effectuer un paiement, le code de vérification SMS joue un rôle. rôle joue un rôle important. Il est relativement simple d'implémenter la fonction de code de vérification SMS du téléphone mobile à l'aide de PHP. Ce qui suit présente les étapes d'implémentation en détail et fournit des exemples de code pour référence.
1. Obtenez les informations de configuration de l'interface SMS
Avant de mettre en œuvre la fonction de code de vérification SMS, nous devons obtenir un compte d'un fournisseur d'interface SMS, tel qu'Alibaba Cloud, Tencent Cloud, etc., puis selon le documents fournis par le fournisseur d'interface ou Tutoriel pour obtenir des informations de configuration. Les informations suivantes doivent généralement être configurées :
Après avoir obtenu les informations de configuration, nous pouvons commencer à écrire du code pour implémenter la fonction de code de vérification SMS.
2. Utilisez PHP pour envoyer le code de vérification par SMS
//Introduce PHP SDK
require_once 'aliyun-php-sdk-core/Config.php';
function sendSmsCode($phoneNumber) {
// 短信 API 的 URL $url = 'http://XXXXX'; // Access Key ID 和 Access Key Secret $accessKeyId = 'XXXXX'; $accessKeySecret = 'XXXXX'; // 签名 $signName = '【公司名】'; // 生成6位随机验证码 $code = rand(100000, 999999); // 短信模板 $templateCode = 'SMS_XXXXX'; $templateParam = array( 'code' => $code, ); $params = array( 'AccessKeyId' => $accessKeyId, 'Action' => 'SendSms', 'Format' => 'JSON', 'PhoneNumbers' => $phoneNumber, 'SignName' => $signName, 'TemplateCode' => $templateCode, 'TemplateParam' => json_encode($templateParam), 'Timestamp' => gmdate("Y-m-dTH:i:sZ"), 'Version' => '2017-05-25', 'SignatureMethod' => 'HMAC-SHA1', 'SignatureNonce' => uniqid(), 'SignatureVersion' => '1.0', ); ksort($params); $canonicalizedQueryString = ''; foreach ($params as $key => $value) { $canonicalizedQueryString .= '&' . rawurlencode($key) . '=' . rawurlencode($value); } $stringToSign = 'GET' . '&%2F&' . rawurlencode(substr($canonicalizedQueryString, 1)); $signature = base64_encode(hash_hmac('sha1', $stringToSign, $accessKeySecret . '&', true)); $url .= '?' . $canonicalizedQueryString . '&Signature=' . rawurlencode($signature); // 发送短信 $result = file_get_contents($url); // 解析短信发送结果 $resultObject = json_decode($result, true); if ($resultObject['Code'] == 'OK') { // 短信发送成功 return $code; } else { // 短信发送失败 return false; }
}
// Appelez la fonction pour envoyer le code de vérification par SMS
$phoneNumber = 'Mobile phone number';
$code = sendSmsCode($phoneNumber);
if ($code) {
echo '验证码已发送至手机号' . $phoneNumber . ',请查收';
} else {
echo '验证码发送失败,请稍后再试';
}
?> ;
Le code ci-dessus est un exemple simple d'envoi d'un code de vérification SMS, dans lequel les informations de configuration correspondantes doivent être remplacées en fonction de la situation réelle. En utilisation réelle, il est recommandé de stocker les informations de configuration dans un fichier de configuration pour faciliter la gestion et la modification.
Résumé
Grâce aux étapes ci-dessus, nous pouvons utiliser PHP pour implémenter la fonction de code de vérification SMS. Lorsqu'un utilisateur demande un code de vérification, nous envoyons un message texte via l'API du fournisseur d'interface et renvoyons le code de vérification à l'utilisateur. Une fois que l'utilisateur a saisi le code de vérification, le serveur peut le vérifier pour garantir l'identité de l'utilisateur et la légitimité de l'opération. Dans les projets réels, nous pouvons nous développer en fonction des besoins, comme l'ajout du délai d'expiration des codes de vérification SMS, la prévention des envois fréquents, etc., pour offrir une meilleure expérience utilisateur et une meilleure sécurité.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!