Rumah > Artikel > pembangunan bahagian belakang > Melaksanakan pengesahan keselamatan PHP menggunakan OneSignal
Gunakan OneSignal untuk melaksanakan pengesahan keselamatan PHP
Ikhtisar:
OneSignal ialah penyedia perkhidmatan tolak merentas platform yang boleh membantu pembangun menghantar pemberitahuan tolak kepada pengguna. Untuk memastikan keselamatan pemberitahuan tolak apabila menggunakan OneSignal, pengesahan diperlukan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melaksanakan pengesahan keselamatan OneSignal.
Langkah:
Berikut ialah langkah untuk melaksanakan pengesahan keselamatan OneSignal menggunakan PHP:
Bina fungsi pengesahan:
Dalam PHP, kami boleh menggunakan perpustakaan fungsi curl untuk menghantar permintaan HTTP. Seterusnya, kita perlu membina fungsi yang mengesahkan sama ada permintaan OneSignal adalah sah.
function validate_onesignal_request($api_key, $body, $timestamp, $signature) { // 构建用于验证的字符串 $payload = $body . $timestamp; // 计算签名 $computed_signature = hash_hmac('sha256', $payload, $api_key); // 对比签名 return $computed_signature === $signature; }
Dalam kod di atas, kami menggunakan fungsi hash_hmac
untuk mengira tandatangan permintaan, dan kemudian membandingkan tandatangan yang dikira dengan tandatangan dalam permintaan. Jika kedua-duanya konsisten, permintaan itu sah. 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
), cap waktu ($timestamp
) dan tandatangan ( $tandatangan). Kemudian, kami memanggil fungsi validate_onesignal_request
untuk mengesahkan kesahihan permintaan. Jika permintaan itu sah, teruskan memproses logik pemberitahuan tolak jika permintaan itu menyalahi undang-undang, respons ralat dikembalikan. Atas ialah kandungan terperinci Melaksanakan pengesahan keselamatan PHP menggunakan OneSignal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!