Rumah > pembangunan bahagian belakang > tutorial php > Laksanakan pengesahan keselamatan PHP menggunakan Pengesahan Telefon Firebase

Laksanakan pengesahan keselamatan PHP menggunakan Pengesahan Telefon Firebase

PHPz
Lepaskan: 2023-07-25 13:10:01
asal
1492 orang telah melayarinya

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

  1. Daftar akaun Firebase dan buat projek Firebase baharu.
  2. Dalam konsol Firebase, dayakan ciri "Pengesahan Telefon".
  3. 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>
    Salin selepas log masuk

Langkah 2: Integrasikan Firebase Phone Authentication

  1. 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;
    ?>
    Salin selepas log masuk

    Nota: [YOUR_API_KEY] dalam kod di atas perlu digantikan dengan kunci API yang anda hasilkan dalam konsol Firebase. [YOUR_API_KEY]需要替换成你在Firebase控制台中生成的API密钥。

步骤三:前端代码编写

  1. 在网页上创建一个文本框和按钮,用于输入手机号码并触发发送验证码的操作。

    <input type="text" id="phone_number_input">
    <button onclick="sendVerificationCode()">发送验证码</button>
    Salin selepas log masuk
  2. 创建一个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);
    }
    Salin selepas log masuk

    注意:上述代码中的YOUR_RECAPTCHA_TOKEN

Langkah 3: Penulisan kod bahagian hadapan

  1. Buat kotak teks dan butang pada halaman web untuk memasukkan nombor telefon mudah alih dan mencetuskan tindakan menghantar kod pengesahan.

    <input type="text" id="verification_code_input">
    <button onclick="verifyVerificationCode()">验证验证码</button>
    Salin selepas log masuk

  2. Buat fungsi JavaScript untuk mengendalikan acara klik butang dan hantar nombor telefon bimbit ke pelayan.

    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);
         });
    }
    Salin selepas log masuk
    Nota: YOUR_RECAPTCHA_TOKEN dalam kod di atas perlu digantikan dengan kunci tapak reCAPTCHA anda untuk mengelakkan operasi berniat jahat.

Langkah 4: Sahkan kod pengesahan


🎜Buat kotak teks dan butang pada halaman web untuk memasukkan kod pengesahan dan mencetuskan operasi kod pengesahan. 🎜rrreee🎜🎜🎜Buat fungsi JavaScript untuk mengendalikan acara klik butang dan hantar kod pengesahan kepada Firebase untuk pengesahan. 🎜rrreee🎜🎜🎜Pada ketika ini, kami telah menyelesaikan semua langkah untuk melaksanakan pengesahan keselamatan PHP menggunakan Pengesahan Telefon Firebase. Kini, apabila pengguna mengklik butang "Hantar Kod Pengesahan", kod pengesahan akan dihantar ke telefon pengguna. Selepas pengguna memasukkan kod pengesahan, klik butang "Sahkan Kod Pengesahan" untuk mengesahkan. 🎜🎜Ringkasan: 🎜Pengesahan Telefon Firebase menyediakan cara yang mudah dan berkuasa untuk melaksanakan pengesahan keselamatan PHP. Dengan menggabungkan PHP dan API REST Firebase, kami boleh melaksanakan pengesahan pengguna dengan mudah dan memastikan data pengguna selamat dalam aplikasi kami. Semoga artikel ini dapat membantu anda! 🎜

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan