>백엔드 개발 >PHP 튜토리얼 >使用 Firebase Phone Authentication 实现 PHP 安全验证

使用 Firebase Phone Authentication 实现 PHP 安全验证

PHPz
PHPz원래의
2023-07-25 13:07:531487검색

Firebase 전화 인증을 사용하여 PHP 보안 확인 구현

개요:
웹 애플리케이션을 개발할 때 보안 확인은 매우 중요한 링크입니다. 사용자 신원과 데이터 보안을 보장하려면 사용자가 로그인하거나 민감한 작업을 수행할 때 사용자를 인증해야 합니다. Firebase 전화 인증은 휴대폰 번호 확인을 구현하는 데 도움이 되는 강력한 인증 솔루션입니다. 이 글에서는 Firebase 전화 인증과 PHP를 사용하여 보안 인증을 구현하는 방법을 소개합니다.

1단계: 준비

  1. Firebase 계정을 등록하고 새 Firebase 프로젝트를 만듭니다.
  2. Firebase 콘솔에서 '전화 인증' 기능을 활성화하세요.
  3. 웹페이지를 만들고 Firebase의 JavaScript SDK를 소개하세요.

    <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>

2단계: Firebase 전화 인증 통합

  1. Firebase에 인증 코드 전송, 인증 코드 확인 등 Firebase 전화 인증과 관련된 작업을 처리하는 PHP 파일을 만듭니다. 통신을 위해 Firebase에서 제공하는 REST API를 사용하겠습니다.

    <?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;
    ?>

    참고: 위 코드의 [YOUR_API_KEY]를 Firebase 콘솔에서 생성한 API 키로 바꿔야 합니다. [YOUR_API_KEY]需要替换成你在Firebase控制台中生成的API密钥。

步骤三:前端代码编写

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

    <input type="text" id="phone_number_input">
    <button onclick="sendVerificationCode()">发送验证码</button>
  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);
    }

    注意:上述代码中的YOUR_RECAPTCHA_TOKEN

3단계: 프런트 엔드 코드 작성

  1. 웹 페이지에 텍스트 상자와 버튼을 만들어 휴대폰 번호를 입력하고 인증 코드 전송 작업을 실행합니다.

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

  2. 버튼 클릭 이벤트를 처리하고 휴대폰 번호를 서버로 보내는 JavaScript 함수를 만듭니다.

    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을 reCAPTCHA 사이트 키로 바꿔야 합니다.

4단계: 인증 코드 확인


🎜웹 페이지에 텍스트 상자와 버튼을 만들어 인증 코드를 입력하고 인증 코드 작업을 실행하세요. 🎜rrreee🎜🎜🎜 버튼 클릭 이벤트를 처리하는 JavaScript 함수를 만들고 확인을 위해 Firebase에 확인 코드를 보냅니다. 🎜rrreee🎜🎜🎜이제 Firebase 전화 인증을 사용하여 PHP 보안 확인을 구현하는 모든 단계를 완료했습니다. 이제 사용자가 "인증코드 전송" 버튼을 클릭하면 사용자의 휴대폰으로 인증코드가 전송됩니다. 사용자가 인증번호를 입력한 후 '인증코드 확인' 버튼을 클릭하여 인증합니다. 🎜🎜요약: 🎜Firebase 전화 인증은 PHP 보안 인증을 구현하는 간단하고 강력한 방법을 제공합니다. PHP와 Firebase의 REST API를 결합하면 사용자 인증을 쉽게 구현하고 애플리케이션에서 사용자 데이터를 안전하게 유지할 수 있습니다. 이 기사가 도움이 되기를 바랍니다! 🎜

위 내용은 使用 Firebase Phone Authentication 实现 PHP 安全验证의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:다음 기사: