Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Pengesahan keselamatan PHP dengan Firebase JWT

Pengesahan keselamatan PHP dengan Firebase JWT

WBOY
WBOYasal
2023-07-24 10:18:181782semak imbas

Pengesahan PHP selamat dengan Firebase JWT

Pengenalan
Keselamatan adalah penting semasa membangunkan aplikasi web. Satu aspek penting ialah pengesahan dan kebenaran pengguna. Untuk memastikan bahawa hanya pengguna yang sah boleh mengakses sumber terhad, kami perlu melaksanakan sistem pengesahan keselamatan dalam aplikasi.

Firebase menyediakan sistem pengesahan yang berkuasa yang mengesahkan melalui JWT (JSON Web Token). JWT ialah standard terbuka untuk menghantar maklumat antara dua pihak. Ia sering digunakan untuk mengesahkan komunikasi selamat antara pengguna dan komputer dan boleh memasukkan maklumat berguna dalam permintaan dan respons.

Artikel ini akan memperkenalkan cara menggunakan Firebase JWT untuk melaksanakan pengesahan selamat dalam aplikasi PHP.

Langkah 1: Buat Projek Firebase
Mula-mula, kita perlu membuat projek Firebase dan mendapatkan bukti kelayakan projek. Berikut ialah langkah untuk membuat projek:

  1. Lawati konsol Firebase (https://console.firebase.google.com/).
  2. Klik butang "Buat Projek".
  3. Masukkan nama projek dan pilih negara atau wilayah.
  4. Klik butang "Teruskan".
  5. Sahkan pelan yang dipilih dan klik butang "Buat Projek".
  6. Selepas mencipta projek, klik ikon "Tetapan".
  7. Dalam tab "Umum", cari bahagian "Aplikasi" dan pilih "Coretan SDK Firebase".
  8. Dalam bahagian "Web", salin data "firebaseConfig" di bawah objek "Konfigurasi".

Langkah 2: Pasang Firebase JWT
Seterusnya, kita perlu memasang pustaka Firebase JWT PHP dan menggunakan Composer untuk mengurus kebergantungan. Buka terminal dan jalankan arahan berikut daripada akar projek:

composer require firebase/php-jwt

Ini akan memasang perpustakaan Firebase JWT PHP dan menambahkannya pada projek anda.

Langkah 3: Laksanakan pengesahan keselamatan
Kini kita boleh mula melaksanakan pengesahan keselamatan. Pertama, kita perlu mencipta kelas untuk menjana dan mengesahkan JWT. Berikut ialah kod untuk kelas contoh:

<?php

require 'vendor/autoload.php';

use FirebaseJWTJWT;

class FirebaseJWT {
    private static $secretKey = 'YOUR_SECRET_KEY'; // 替换为你的密钥
    private static $issuer = 'YOUR_ISSUER'; // 替换为你的发行者

    public static function generateToken($userData) {
        $token = [
            "iss" => self::$issuer,
            "aud" => $userData["aud"],
            "iat" => time(),
            "exp" => time() + 3600,
            "data" => $userData
        ];

        return JWT::encode($token, self::$secretKey, 'HS256');
    }

    public static function verifyToken($token) {
        try {
            $decoded = JWT::decode($token, self::$secretKey, ['HS256']);
            return json_decode(json_encode($decoded), true);
        } catch (Exception $e) {
            return false;
        }
    }
}

Sila pastikan untuk menggantikan YOUR_SECRET_KEY dan YOUR_ISSUER dengan kunci dan pengeluar anda sendiri. YOUR_SECRET_KEYYOUR_ISSUER 替换为你自己的密钥和发行者。

步骤 4: 使用安全验证
现在,我们可以在 PHP 应用程序中使用安全验证。下面是一个示例代码:

<?php

require 'FirebaseJWT.php';

$token = "";
$payload = [];

if ($_SERVER["REQUEST_METHOD"] === "POST") {
    $token = $_POST["token"];
}

if (!empty($token)) {
    $payload = FirebaseJWT::verifyToken($token);
}

if (!$payload) {
    echo "无效的令牌";
} else {
    echo "用户ID: " . $payload["data"]["user_id"];
    // 执行授权操作
}

在上面的示例中,我们首先从 POST 请求中获取 JWT 令牌。然后,我们使用 FirebaseJWT 类的 verifyToken 方法来验证令牌,并将其存储在 $payload 变量中。

如果令牌验证失败,我们将输出 "无效的令牌"。否则,我们可以从 $payload

Langkah 4: Gunakan Pengesahan Keselamatan

Kini, kami boleh menggunakan pengesahan keselamatan dalam aplikasi PHP kami. Berikut ialah contoh kod:
rrreee

Dalam contoh di atas, kami mula-mula mendapat token JWT daripada permintaan POST. Kami kemudian menggunakan kaedah verifyToken kelas FirebaseJWT untuk mengesahkan token dan menyimpannya dalam pembolehubah $payload.

Jika pengesahan token gagal, kami akan mengeluarkan "Token Tidak Sah". Jika tidak, kami boleh mendapatkan maklumat pengguna daripada $payload dan melaksanakan operasi kebenaran lain. 🎜🎜Kesimpulan🎜Dengan menggunakan Firebase JWT, kami boleh melaksanakan pengesahan selamat dalam aplikasi PHP dengan mudah. JWT menyediakan kami cara yang selamat untuk mengesahkan pengguna dan memastikan bahawa hanya pengguna yang dibenarkan boleh mengakses sumber terhad. Ingat, kerahsiaan kunci anda adalah sangat penting dan anda harus sentiasa memastikan kunci anda selamat. 🎜🎜Semoga artikel ini membantu anda melaksanakan pengesahan keselamatan dalam aplikasi PHP anda dan menyediakan keselamatan yang lebih baik untuk aplikasi anda! 🎜

Atas ialah kandungan terperinci Pengesahan keselamatan PHP dengan Firebase JWT. 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