initBrandTemplateTokenVerifier
This API is a preview. Preview APIs are unstable and may change without warning. You can't release public apps using this API until it's stable.
Initializes a brand template token verifier with the given configuration.
Brand template tokens are JWTs that identify a specific Canva brand template context. They are used to verify requests that need access to brand-template-scoped data.
Canva's internal "Context JWT" is broader, but this package exposes a focused brand template verifier because the generic Context JWT concept is not currently a public Canva Dev surface. This keeps the public API simple today, and allows a more generic verifier to be introduced later when external migration begins.
The verifier caches JWKS public keys according to the configured cache settings. Create one verifier instance and reuse it for all verification requests.
Usage
Basic usage:
import { initBrandTemplateTokenVerifier } from '@canva/app-middleware';// Initialize once at app startupconst verifier = initBrandTemplateTokenVerifier({appId: process.env.CANVA_APP_ID,});// Verify tokens per request inside a handlerconst payload = await verifier.verify(token);console.log(payload.brand_template_id, payload.appId);
With custom options:
const verifier = initBrandTemplateTokenVerifier({appId: process.env.CANVA_APP_ID,cacheMaxAgeMinutes: 30,timeoutMs: 10000,});
Parameters
optionsTokenVerifierOptionsConfiguration options for the verifier
appIdstringThe ID of the Canva app, obtained via the developer portal canva.com/developers.
cacheMaxAgeMinutesnumberThe maximum age of the JWKS cache in minutes.
Default value: 60
timeoutMsnumberThe timeout for the JWKS fetch in milliseconds.
Default value: 30000
baseUrlstringThe base URL for the JWKS endpoint.
Default value: "https://api.canva.com"
Returns
A configured verifier instance.
verifyfunctionVerifies a Canva brand template JWT token and returns the decoded payload.
Parameters
tokenstringThe JWT token to verify
Returns
The verified brand template token payload. This is a Promise that resolves with the following object:
appIdstringThe ID of the Canva app
brandTemplateIdstringThe ID of the Canva brand template
Throws
When the token is malformed or has an invalid signature
Throws
When the token has expired