Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengesahan keselamatan PHP dengan Pangkalan Data Masa Nyata Firebase

Pengesahan keselamatan PHP dengan Pangkalan Data Masa Nyata Firebase

PHPz
PHPzasal
2023-07-25 08:30:301701semak imbas

Pengesahan keselamatan PHP melalui Pangkalan Data Masa Nyata Firebase

Pengenalan:
Dengan perkembangan pesat aplikasi web, isu keselamatan telah menjadi masalah mendesak untuk diselesaikan. Untuk melindungi data dan privasi pengguna, pembangun perlu menambah mekanisme pengesahan keselamatan. Pangkalan Data Masa Nyata Firebase ialah penyelesaian pangkalan data masa nyata yang berkuasa dan mudah digunakan yang disepadukan dengan bahagian belakang PHP, menyediakan cara untuk mengesahkan pengguna dengan selamat.

Artikel ini akan memperkenalkan cara menggunakan Pangkalan Data Masa Nyata Firebase untuk melaksanakan pengesahan keselamatan PHP. Kami akan menggunakan contoh mudah untuk menunjukkan cara untuk mengesahkan pengguna dan memastikan data sensitif selamat.

Langkah 1: Buat Projek Firebase
Mula-mula, kita perlu mencipta projek baharu dalam konsol Firebase. Dalam tetapan projek, pilih tab Konfigurasi Projek dan salin ID projek, kunci API dan URL pangkalan data untuk kegunaan kemudian.

Langkah 2: Pasang Firebase PHP Admin SDK
Dalam projek PHP kami, kami akan menggunakan Firebase PHP Admin SDK untuk berkomunikasi dengan Firebase Realtime Database. Anda boleh memasang Firebase PHP Admin SDK melalui Composer.

Buka terminal dan pergi ke direktori projek dan jalankan arahan berikut:

composer require kreait/firebase-php

Langkah 3: Buat fail PHP dan mulakan Firebase
Kini kita boleh mula mencipta fail PHP dan memulakan Firebase. Mula-mula buat fail bernama firebase.php. Import SDK Pentadbir PHP Firebase dalam fail dan gunakan konfigurasi permulaan untuk menyambung ke Pangkalan Data Masa Nyata Firebase. Contoh kod adalah seperti berikut: firebase.php 的文件。在文件中导入 Firebase PHP Admin SDK,然后使用初始化配置连接到 Firebase Realtime Database。代码示例如下:

<?php
require 'vendor/autoload.php';

use KreaitFirebaseFactory;

$factory = (new Factory)
    ->withDatabaseUri('<DATABASE_URL>')
    ->withServiceAccount('/path/to/serviceAccountKey.json');

$database = $factory->createDatabase();
?>

注意:在代码中,将 e1257878a666ced2d588e68beabf7739 替换为你的 Firebase 数据库 URL,并将 /path/to/serviceAccountKey.json 替换为你的服务账号密钥的路径。

步骤四:创建用户注册和登录函数
我们需要创建用户注册和登录的函数来验证用户身份。在 firebase.php 文件中添加以下代码:

<?php
// 用户注册
function registerUser($email, $password)
{
    global $factory;
    
    $auth = $factory->createAuth();
    
    try{
        $auth->createUserWithEmailAndPassword($email, $password);
        return true;
    } catch(Exception $e){
        echo "注册失败: " . $e->getMessage();
        return false;
    }
}

// 用户登录
function loginUser($email, $password)
{
    global $factory;

    $auth = $factory->createAuth();

    try{
        $token = $auth->signInWithEmailAndPassword($email, $password)->idToken();
        return $token;
    } catch(Exception $e){
        echo "登录失败: " . $e->getMessage();
        return false;
    }
}
?>

步骤五:使用安全验证保护数据
接下来,我们将使用安全验证保护数据。首先在 Firebase 控制台中设置数据库规则。在数据库规则中,我们将使用用户的 token 来验证其身份。在 firebase.php 文件中添加以下代码:

<?php
// 设置数据库规则
function setDatabaseRules()
{
    global $database;

    $rules = '{
        "rules": {
            ".read": "auth != null",
            ".write": "auth != null"
        }
    }';

    $database->getReference('.settings/rules')->set(json_decode($rules));
}
?>

接下来,在你的应用程序中,当用户成功注册或登录后,调用 setDatabaseRules()

<?php
require 'firebase.php';

// 初始化 Firebase
$factory = (new Factory)
    ->withDatabaseUri('<DATABASE_URL>')
    ->withServiceAccount('/path/to/serviceAccountKey.json');

$database = $factory->createDatabase();

// 用户注册
function registerUser($email, $password)
{
    global $factory;
    
    $auth = $factory->createAuth();
    
    try{
        $auth->createUserWithEmailAndPassword($email, $password);
        return true;
    } catch(Exception $e){
        echo "注册失败: " . $e->getMessage();
        return false;
    }
}

// 用户登录
function loginUser($email, $password)
{
    global $factory;

    $auth = $factory->createAuth();

    try{
        $token = $auth->signInWithEmailAndPassword($email, $password)->idToken();
        return $token;
    } catch(Exception $e){
        echo "登录失败: " . $e->getMessage();
        return false;
    }
}

// 设置数据库规则
function setDatabaseRules()
{
    global $database;

    $rules = '{
        "rules": {
            ".read": "auth != null",
            ".write": "auth != null"
        }
    }';

    $database->getReference('.settings/rules')->set(json_decode($rules));
}

// 注册用户
registerUser("test@example.com", "test123");

// 登录用户
$token = loginUser("test@example.com", "test123");

// 设置数据库规则
setDatabaseRules();
?>

Nota: Dalam kod, gantikan e1257878a666ced2d588e68beabf7739 dengan URL pangkalan data Firebase anda dan /path/to/serviceAccountKey.json Ganti dengan laluan ke kunci akaun perkhidmatan anda.


Langkah 4: Buat pendaftaran pengguna dan fungsi log masuk

Kami perlu mencipta fungsi pendaftaran dan log masuk pengguna untuk mengesahkan identiti pengguna. Tambahkan kod berikut dalam fail firebase.php:

rrreee
Langkah 5: Lindungi data menggunakan pengesahan keselamatan

Seterusnya, kami akan melindungi data menggunakan pengesahan keselamatan. Mulakan dengan menyediakan peraturan pangkalan data dalam konsol Firebase. Dalam peraturan pangkalan data, kami akan menggunakan token pengguna untuk mengesahkan identiti mereka. Tambahkan kod berikut dalam fail firebase.php:

rrreee

Seterusnya, dalam aplikasi anda, apabila pengguna berjaya mendaftar atau log masuk, panggil fungsi setDatabaseRules() untuk menetapkan peraturan pangkalan data. Dengan cara ini hanya pengguna yang log masuk boleh membaca dan menulis ke pangkalan data.
  • Langkah 6: Contoh kod lengkap
  • Berikut ialah contoh kod lengkap yang menunjukkan cara menggunakan Pangkalan Data Masa Nyata Firebase untuk melaksanakan pengesahan keselamatan PHP:
  • rrreee
  • Ringkasan:
Melalui gabungan Pangkalan Data Masa Nyata Firebase dan PHP, kami boleh melaksanakan dengan mudah keselamatan Sahkan dan lindungi privasi data pengguna. Dalam artikel ini, kami mempelajari cara menyediakan peraturan pangkalan data menggunakan Firebase PHP Admin SDK dan Firebase console, serta cara mendaftar dan log masuk pengguna. Dengan langkah ini, kami boleh melaksanakan pengesahan keselamatan yang kukuh dalam aplikasi PHP kami. 🎜🎜Rujukan: 🎜🎜🎜Dokumentasi Firebase: [https://firebase.google.com/docs/admin/setup](https://firebase.google.com/docs/admin/setup)🎜🎜Pentadbir PHP Kreit Firebase SDK: [https://github.com/kreait/firebase-php](https://github.com/kreait/firebase-php)🎜🎜

Atas ialah kandungan terperinci Pengesahan keselamatan PHP dengan Pangkalan Data Masa Nyata Firebase. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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