Maison  >  Article  >  développement back-end  >  Authentification de sécurité PHP avec Firebase Hosting

Authentification de sécurité PHP avec Firebase Hosting

WBOY
WBOYoriginal
2023-07-24 11:07:481535parcourir

Vérification de la sécurité PHP avec Firebase Hosting

Présentation :
Firebase Hosting est un service d'hébergement de pages Web statiques fourni par Google qui peut facilement héberger des applications frontales. Cependant, pour les sites Web nécessitant un traitement dynamique, tels que les sites Web PHP qui nécessitent une connexion utilisateur et une vérification des autorisations, Firebase Hosting ne peut à lui seul répondre aux besoins. Cet article explique comment utiliser PHP pour une authentification sécurisée dans Firebase Hosting, garantissant que seuls les utilisateurs authentifiés peuvent accéder aux données sensibles.

Étapes :

  1. Créez un projet Firebase et configurez Firebase Hosting
    Créez un nouveau projet dans la console Firebase et suivez les instructions pour configurer Firebase Hosting. Créez et publiez une page Web statique comme page d'accueil par défaut.
  2. Configurer Firebase Cloud Functions
    Dans le terminal, créez un nouveau répertoire et initialisez Firebase Cloud Functions à l'aide de la commande firebase init function. Dans le fichier index.js généré, ajoutez le code suivant : firebase init functions 命令初始化 Firebase Cloud Functions。在生成的 index.js 文件中,添加以下代码:
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp();

exports.authenticatedRequest = functions.https.onRequest((req, res) => {
  const key = req.query.key;
  if (key !== 'YOUR_SECRET_KEY') {
    return res.status(403).send('Forbidden');
  }

  // 进行自定义的权限验证逻辑
  // ...

  // 返回需要进行身份验证的数据
  res.send('Authenticated data');
});
  1. 添加 PHP 文件
    在 Firebase Cloud Functions 目录下创建一个名为 auth.php 的 PHP 文件,用于实现验证逻辑。以下是一个示例代码:
<?php
$key = "YOUR_SECRET_KEY";
$url = "https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/authenticatedRequest?key=".$key;

// 如果请求带有 cookie,并且 cookie 中包含用户的身份信息
if(isset($_COOKIE['uid'])) {
    // 验证用户身份,例如从数据库中查询用户信息
    $uid = $_COOKIE['uid'];
    $result = // 验证逻辑
    if ($result === true) {
        // 身份验证通过,发送 GET 请求获取数据
        $data = file_get_contents($url);
        echo $data;
        exit;
    }
}

// 身份验证未通过,跳转到登录页面
header("Location: login.php");
  1. 配置 Firebase Hosting
    在 Firebase Hosting 的 firebase.json 配置文件中,添加以下配置:
{
  "hosting": {
    "rewrites": [
      {
        "source": "**",
        "function": "authenticatedRequest"
      }
    ]
  }
}
  1. 部署并测试
    在终端上执行 firebase deploy
  2. rrreee
      Ajouter un fichier PHP

      Créez un fichier nommé auth dans le répertoire Firebase Cloud Functions .php Fichier PHP utilisé pour implémenter la logique de vérification. Voici un exemple de code :

      rrreee
        🎜Configuration de Firebase Hosting🎜Dans le fichier de configuration firebase.json de Firebase Hosting, ajoutez la configuration suivante : 🎜🎜rrreee
          🎜Déployer et tester🎜Exécutez la commande firebase déployer sur le terminal pour déployer le fichier PHP sur Firebase Hosting. Ensuite, visitez le site Web hébergé par Firebase Hosting pour voir si la vérification de sécurité PHP a été mise en œuvre avec succès. 🎜🎜🎜Résumé : 🎜Grâce aux étapes ci-dessus, nous avons implémenté avec succès la vérification de sécurité PHP dans Firebase Hosting. Dans Firebase Cloud Functions, nous avons configuré une fonction qui n'accepte qu'une clé spécifique pour gérer les demandes nécessitant une authentification. Ensuite, dans le fichier PHP, nous authentifions l'utilisateur, envoyons une requête GET à Firebase Cloud Functions pour obtenir les données et redirigeons l'utilisateur non authentifié. De cette façon, nous pouvons mettre en œuvre un site Web PHP sécurisé et garantir que seuls les utilisateurs authentifiés peuvent accéder aux données sensibles. 🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn