Rumah > Artikel > pembangunan bahagian belakang > Laksanakan pengesahan keselamatan PHP menggunakan Pengesahan Telefon Firebase
Gunakan Pengesahan Telefon Firebase untuk melaksanakan pengesahan keselamatan PHP
Ikhtisar:
Apabila membangunkan aplikasi web, pengesahan keselamatan ialah pautan yang sangat penting. Untuk memastikan identiti pengguna dan keselamatan data, kami perlu mengesahkan pengguna apabila mereka log masuk atau melakukan operasi sensitif. Firebase Phone Authentication ialah penyelesaian pengesahan yang berkuasa yang boleh membantu kami melaksanakan pengesahan nombor telefon mudah alih. Artikel ini akan memperkenalkan cara menggunakan Pengesahan Telefon Firebase dan PHP untuk melaksanakan pengesahan keselamatan.
Langkah 1: Persediaan
Buat halaman web dan perkenalkan JavaScript SDK 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>
Langkah 2: Integrasikan Firebase Phone Authentication
Buat fail PHP untuk mengendalikan operasi yang berkaitan dengan Firebase Phone Authentication, seperti menghantar kod pengesahan ke Firebase, mengesahkan kod pengesahan, dsb. Kami akan menggunakan API REST yang disediakan oleh Firebase untuk komunikasi.
<?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; ?>
Nota: [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); }); }Nota:
Atas ialah kandungan terperinci Laksanakan pengesahan keselamatan PHP menggunakan Pengesahan Telefon Firebase. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!