Utilisez l'authentification téléphonique Firebase pour implémenter la vérification de sécurité PHP
Présentation :
Lors du développement d'applications Web, la vérification de sécurité est un lien très important. Pour garantir l'identité des utilisateurs et la sécurité des données, nous devons authentifier les utilisateurs lorsqu'ils se connectent ou effectuent des opérations sensibles. Firebase Phone Authentication est une solution d'authentification puissante qui peut nous aider à mettre en œuvre la vérification du numéro de téléphone mobile. Cet article explique comment utiliser l'authentification téléphonique Firebase et PHP pour mettre en œuvre la vérification de sécurité.
Étape 1 : Préparation
Créez une page Web et présentez le SDK JavaScript de Firebase.
<script src="https://www.gstatic.com/firebasejs/7.8.1/firebase-app.js"></script> <script src="https://www.gstatic.com/firebasejs/7.8.1/firebase-auth.js"></script>
Étape 2 : Intégrer l'authentification téléphonique Firebase
Créez un fichier PHP pour gérer les opérations liées à l'authentification téléphonique Firebase, telles que l'envoi de codes de vérification à Firebase, la vérification des codes de vérification, etc. Nous utiliserons l'API REST fournie par Firebase pour la communication.
<?php $phone_number = $_POST['phone_number']; $recaptcha_token = $_POST['recaptcha_token']; $request_body = [ 'phoneNumber' => $phone_number, 'recaptchaToken' => $recaptcha_token ]; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'https://identitytoolkit.googleapis.com/v1/accounts:sendOobCode?key=[YOUR_API_KEY]'); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($request_body)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $response = curl_exec($ch); curl_close($ch); echo $response; ?>
Remarque : [YOUR_API_KEY]
dans le code ci-dessus doit être remplacé par la clé API que vous avez générée dans la console Firebase. [YOUR_API_KEY]
需要替换成你在Firebase控制台中生成的API密钥。
步骤三:前端代码编写
在网页上创建一个文本框和按钮,用于输入手机号码并触发发送验证码的操作。
<input type="text" id="phone_number_input"> <button onclick="sendVerificationCode()">发送验证码</button>
创建一个JavaScript函数来处理点击按钮的事件,并发送手机号码到服务器。
function sendVerificationCode() { var phoneNumber = document.getElementById('phone_number_input').value; var recaptchaToken = 'YOUR_RECAPTCHA_TOKEN'; var request = new XMLHttpRequest(); request.open('POST', 'path/to/your/php/file.php'); request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded'); request.onreadystatechange = function() { if (request.readyState === XMLHttpRequest.DONE && request.status === 200) { var response = JSON.parse(request.responseText); if (response.hasOwnProperty('error')) { console.log('发送验证码失败:' + response.error.message); } else { console.log('验证码已发送,请查收。'); } } } var requestBody = 'phone_number=' + encodeURIComponent(phoneNumber) + '&recaptcha_token=' + encodeURIComponent(recaptchaToken); request.send(requestBody); }
注意:上述代码中的YOUR_RECAPTCHA_TOKEN
<input type="text" id="verification_code_input"> <button onclick="verifyVerificationCode()">验证验证码</button>
function verifyVerificationCode() { var verificationCode = document.getElementById('verification_code_input').value; var credential = firebase.auth.PhoneAuthProvider.credential(window.confirmationResult.verificationId, verificationCode); firebase.auth().signInWithCredential(credential) .then(function() { console.log('验证成功!'); // 验证成功后的操作 }) .catch(function(error) { console.log('验证失败:' + error.message); }); }
YOUR_RECAPTCHA_TOKEN
dans le code ci-dessus doit être remplacé par votre clé de site reCAPTCHA pour empêcher les opérations malveillantes. 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!