IO Signature
This page describes implementing IO Signature and toggling it on
IO Signature Implementation
3
Compute Signature
# io_signature.py
import os
import time
import hmac
import hashlib
partner_id = "Your partner ID here"
# Platform secret should be passed as an environment variable as best practice
secret = os.getenv("PLATFORM_SECRET")
def generate_signature(partner_id: str, secret: str) -> dict:
if secret is None or secret.trim() == "":
raise Exception("ERROR: No platform secret provided")
timestamp = int(time.time())
message = f"{partner_id}|{timestamp}"
signature = hmac.new(
secret.encode("utf-8"),
message.encode("utf-8"),
hashlib.sha512
).hexdigest()
return {
"timestamp": timestamp,
"signature": signature,
}4
Serve Signature and Timestamp
# server.py
import os
import time
import hmac
import hashlib
from flask import Flask, jsonify
from io_signature import generate_signature # Sample shown in Step 3
app = Flask(__name__)
@app.get("/api/sign_io")
def signature():
return jsonify(generate_signature())// server.js
import express from "express";
import crypto from "crypto";
import dotenv from "dotenv";
import { generateSignature } from "./io_signature.js"; // Sample shown in Step 3
dotenv.config();
const app = express();
app.get("/api/sign_io", (req, res) => {
res.json(generateSignature());
});
app.listen(3000);Enable IO Signature
IO Security Measures
Link Staleness
Link Reuse
Examples of Using IO Signatures

Last updated
Was this helpful?


