[PHP] 外部からAPIとしてPHPをCallする際のアクセスキー判定コード例

外部からAPIとしてPHPをCallする際のアクセスキー判定コード例

2つのPHPがあり、1つはもう一つのPHPにAPIとしてCallする場合、セキュリティの一環としてアクセスキーをPOSTなどで送信して、送信元が正しいものか判定するコードを書いた

APIをCallする方、POST送信にaccess_keyを埋め込んでいる

$url = 'YOUR_API_URL'; //APIのURL
$correct_access_key = 'YOUR_GENERATED_ACCESS_KEY'; // この部分を生成したアクセスキーに置き換える

// POSTデータ
$post_data = array(
    'access_key' => $correct_access_key
);

// POSTリクエストを作成
$options = array(
    'http' => array(
        'method'  => 'POST',
        'header'  => 'Content-type: application/x-www-form-urlencoded',
        'content' => http_build_query($post_data)
    )
);
$context  = stream_context_create($options);
$response = file_get_contents($url, false, $context);

// レスポンスを処理
if ($response === false) {
    // リクエストが失敗した場合の処理
} else {
    // リクエストが成功した場合の処理
    // $responseにAPIからのレスポンスが含まれる
}

APIをCallされる方

// 受け取ったPOSTデータからアクセスキーを取得
$received_access_key = $_POST['access_key'];

// 正しいアクセスキーかどうかを検証
$correct_access_key = 'YOUR_GENERATED_ACCESS_KEY'; // この部分を生成したアクセスキーに置き換える

if ($received_access_key === $correct_access_key) {
    // 正しいアクセスキーの場合、データを返す
    // ここでJSONデータを生成して返す
    // 例: echo json_encode($your_data);
} else {
    // 不正なアクセスキーの場合、エラーメッセージを返すなどの処理を行う
    // 例: echo json_encode(array('error' => 'Invalid access key'));
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です