Firebase 전화 인증을 사용하여 PHP 보안 확인 구현
개요:
웹 애플리케이션을 개발할 때 보안 확인은 매우 중요한 링크입니다. 사용자 신원과 데이터 보안을 보장하려면 사용자가 로그인하거나 민감한 작업을 수행할 때 사용자를 인증해야 합니다. Firebase 전화 인증은 휴대폰 번호 확인을 구현하는 데 도움이 되는 강력한 인증 솔루션입니다. 이 글에서는 Firebase 전화 인증과 PHP를 사용하여 보안 인증을 구현하는 방법을 소개합니다.
1단계: 준비
웹페이지를 만들고 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 전화 인증 통합
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密钥。
步骤三:前端代码编写
在网页上创建一个文本框和按钮,用于输入手机号码并触发发送验证码的操作。
<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
을 reCAPTCHA 사이트 키로 바꿔야 합니다. 위 내용은 使用 Firebase Phone Authentication 实现 PHP 安全验证의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!