Generate a JWT
Learn how to create a JSON Web Token (JWT) to authenticate to certain REST API endpoints with your ICR App.
About JSON web tokens (JWTs)
Claim
Meaning
Details
curl --request GET \
--url "https://api.carbonregistry.com/projects" \
--header "Authorization: Bearer YOUR_JWT" Generating a JWT
import jwt from "jsonwebtoken";
interface CustomClaims {
iss: string; // Issuer
exp: number; // Expiration Time (Unix timestamp)
iat: number; // Issued At (Unix timestamp)
alg: string; // Algorithm
}
export function createJWT(): string {
const claims: CustomClaims = {
iss: process.env.NEXT_PUBLIC_APP_ID, // Replace with your ICR App's ID
exp: Math.floor(Date.now() / 1000) + 600, // 10 minutes in the future
iat: Math.floor(Date.now() / 1000) - 60, // 60 seconds in the past
alg: "RS256",
};
// Create a JWT token
const token = jwt.sign(claims, process.env.PRIVATE_KEY, {
algorithm: "RS256",
});
return token;
}
const jwtToken = createJWT();
console.log("Generated JWT:", jwtToken);Last updated