Rumah > Artikel > pembangunan bahagian belakang > Pengesahan keselamatan PHP dengan Pangkalan Data Masa Nyata Firebase
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
firebase.php
: rrreee
Langkah 5: Lindungi data menggunakan pengesahan keselamatan
firebase.php
: rrreee
Seterusnya, dalam aplikasi anda, apabila pengguna berjaya mendaftar atau log masuk, panggil fungsisetDatabaseRules()
untuk menetapkan peraturan pangkalan data. Dengan cara ini hanya pengguna yang log masuk boleh membaca dan menulis ke pangkalan data. 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!