Comment envoyer un code de vérification de téléphone mobile et une notification SMS lorsque l'utilisateur se connecte en PHP

王林
Libérer: 2023-09-25 10:34:01
original
1235 Les gens l'ont consulté

Comment envoyer un code de vérification de téléphone mobile et une notification SMS lorsque lutilisateur se connecte en PHP

Comment implémenter en PHP pour envoyer des codes de vérification de téléphone mobile et des notifications SMS lorsque les utilisateurs se connectent

Avec la popularité des smartphones, les téléphones mobiles sont devenus l'un des outils indispensables dans nos vies. Sur les sites Web ou les applications, fournir aux utilisateurs des codes de vérification de téléphone mobile et des fonctions de notification par SMS peut non seulement améliorer la sécurité des utilisateurs, mais également augmenter leur expérience. Cet article présentera comment implémenter la fonction d'envoi de codes de vérification de téléphone mobile et de notifications SMS lorsque les utilisateurs se connectent en PHP, et fournira des exemples de code spécifiques.

  1. Génération et envoi du code de vérification du téléphone mobile
    Dans la page de connexion de l'utilisateur, nous fournissons généralement une zone de saisie pour saisir le numéro de téléphone mobile. Une fois que l'utilisateur a saisi le numéro de téléphone mobile et cliqué sur le bouton Envoyer le code de vérification, le système générera un code de vérification et enverra le code de vérification au numéro de téléphone mobile saisi par l'utilisateur.

Tout d’abord, nous devons utiliser un fournisseur d’interface SMS tiers. Dans cet exemple, nous choisissons d'utiliser le service SMS fourni par Alibaba Cloud.

Après avoir enregistré un compte sur le service Alibaba Cloud SMS et activé le service SMS, nous pouvons obtenir une clé d'accès pour l'authentification de l'autorisation dans le code. Pour les étapes d'activation spécifiques, veuillez vous référer à la documentation d'aide d'Alibaba Cloud.

Ensuite, nous pouvons écrire un fichier send_sms_code.php pour gérer la logique d'envoi des codes de vérification.

<?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));
}
?>
Copier après la connexion

Dans le code ci-dessus, nous obtenons d'abord le numéro de téléphone mobile saisi par l'utilisateur et le code de vérification généré, et les stockons dans la session. Ensuite, nous utilisons le SDK d'Alibaba Cloud SMS Service pour envoyer des messages texte. Parmi eux, $accessKeyId, $accessKeySecret, $signName et $templateCode sont respectivement les informations d'identification et les informations de modèle du service Alibaba Cloud SMS mentionnés ci-dessus.

Les résultats d'envoi renvoyés sont générés au format JSON pour le traitement des pages frontales.

  1. Vérification du code de vérification lorsque l'utilisateur se connecte
    Une fois que l'utilisateur a saisi le numéro de téléphone mobile et le code de vérification, et cliqué sur le bouton de connexion, nous devons vérifier si le code de vérification saisi par l'utilisateur correspond au code de vérification précédemment envoyé pour garantir le légitimité de l'identité de l'utilisateur.

Nous pouvons écrire un fichier check_sms_code.php pour gérer la logique de vérification du code de vérification.

<?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' => '验证码验证失败'));
}
?>
Copier après la connexion

Dans le code ci-dessus, nous obtenons le code de vérification stocké à partir de la session, puis le comparons avec le code de vérification saisi par l'utilisateur. S'ils correspondent, le code de vérification est considéré comme ayant réussi la vérification et la logique de connexion utilisateur correspondante peut être exécutée. Dans le cas contraire, la vérification du code de vérification est considérée comme ayant échoué.

Grâce aux exemples de code ci-dessus, nous pouvons facilement implémenter la fonction d'envoi de codes de vérification de téléphone mobile et de notifications SMS lorsque les utilisateurs se connectent en PHP. Bien sûr, il peut y avoir une logique plus complexe dans les applications réelles, mais les principes et méthodes de base sont les mêmes. J'espère que cet article vous aidera !

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!