Maison > Article > développement back-end > Implémentation de la vérification de sécurité PHP à l'aide de OneSignal
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 :
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
函数计算请求的签名,然后将计算得到的签名与请求中的签名进行对比。如果两者一致,说明请求合法。
接收 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
$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. 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!