Maison  >  Article  >  développement back-end  >  Implémentation de la vérification de sécurité PHP à l'aide de OneSignal

Implémentation de la vérification de sécurité PHP à l'aide de OneSignal

王林
王林original
2023-07-25 11:27:341496parcourir

Utilisez OneSignal pour implémenter la vérification de sécurité PHP

Présentation :
OneSignal est un fournisseur de services push multiplateforme qui peut aider les développeurs à envoyer des notifications push aux utilisateurs. Pour garantir la sécurité des notifications push lors de l'utilisation de OneSignal, une authentification est requise. Cet article explique comment utiliser PHP pour implémenter la vérification de sécurité OneSignal.

Étapes :
Voici les étapes pour mettre en œuvre la vérification de sécurité OneSignal à l'aide de PHP :

  1. S'inscrire et obtenir la clé API :
    Tout d'abord, nous devons créer un compte sur le site officiel de OneSignal et créer une application. Après avoir créé votre application, vous obtenez une clé API que vous utilisez pour vous authentifier auprès de OneSignal.
  2. Construire la fonction de vérification :
    En PHP, nous pouvons utiliser la bibliothèque de fonctions curl pour envoyer des requêtes HTTP. Ensuite, nous devons créer une fonction qui vérifie si la requête OneSignal est légitime.

    function validate_onesignal_request($api_key, $body, $timestamp, $signature) {
        // 构建用于验证的字符串
        $payload = $body . $timestamp;
        
        // 计算签名
        $computed_signature = hash_hmac('sha256', $payload, $api_key);
        
        // 对比签名
        return $computed_signature === $signature;
    }

    Dans le code ci-dessus, nous utilisons la fonction hash_hmac pour calculer la signature de la requête, puis comparons la signature calculée avec la signature de la requête. Si les deux sont cohérents, la demande est légitime. hash_hmac 函数计算请求的签名,然后将计算得到的签名与请求中的签名进行对比。如果两者一致,说明请求合法。

  3. 接收 OneSignal 请求并验证:
    我们需要构建一个 PHP 接口来接收 OneSignal 的请求,并进行验证。以下是一个简单的示例:

    $api_key = "API_KEY"; // 替换为您的 API 密钥
    
    // 检查请求方法是否为 POST
    if ($_SERVER['REQUEST_METHOD'] === 'POST') {
        $body = file_get_contents('php://input');
        $timestamp = $_SERVER['HTTP_X_ONESIGNAL_TIMESTAMP'];
        $signature = $_SERVER['HTTP_X_ONESIGNAL_SIGNATURE'];
        
        // 验证 OneSignal 请求
        if (validate_onesignal_request($api_key, $body, $timestamp, $signature)) {
            // 请求合法,处理推送通知逻辑
            // ...
            // 此处添加您的推送通知处理逻辑
            // ...
            
            // 返回合法响应
            http_response_code(200);
        } else {
            // 请求非法,返回错误响应
            http_response_code(403);
        }
    } else {
        // 非法请求方法,返回错误响应
        http_response_code(400);
    }

    在上述代码中,我们首先获取请求的内容($body)、时间戳($timestamp)和签名($signature)。然后,我们调用 validate_onesignal_request

  4. Recevoir la demande OneSignal et vérifier :
    Nous devons créer une interface PHP pour recevoir la demande OneSignal et la vérifier. Voici un exemple simple :
  5. rrreee
Dans le code ci-dessus, nous obtenons d'abord le contenu demandé ($body), l'horodatage ($timestamp) et la signature ( $signature). Ensuite, nous appelons la fonction validate_onesignal_request pour vérifier la validité de la requête. Si la demande est légale, continuez le traitement de la logique de notification push ; si la demande est illégale, une réponse d'erreur est renvoyée.


Déployez le code et testez-le : 🎜Enregistrez le code ci-dessus en tant que fichier PHP et déployez le fichier sur votre serveur. Enfin, vous pouvez utiliser un outil comme Postman pour envoyer une demande de test et vérifier que la bonne réponse est renvoyée. 🎜🎜🎜Résumé : 🎜Cet article explique comment utiliser PHP pour implémenter la vérification de sécurité OneSignal. En écrivant une fonction de vérification et une interface PHP correspondante, nous pouvons garantir la légitimité des requêtes OneSignal. De cette façon, vous pouvez utiliser OneSignal pour envoyer des notifications push à vos utilisateurs en toute confiance et sécuriser les notifications. J'espère que cet article vous sera utile pour votre travail de développement ! 🎜

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