Untitled
unknown
plain_text
2 years ago
1.2 kB
11
Indexable
addEventListener('fetch', event => {
event.respondWith(purgeCache(event.request))
})
async function purgeCache(request) {
const url = new URL(request.url)
// If the path doesn't begin with our protected prefix, just pass the request through.
if (!url.pathname.startsWith("/__purge_cache")) {
return fetch(request)
}
// Lets validate the zone id, and return an error if invalid
let zoneIdValidated = (new RegExp("^([a-z0-9]{32})$")).test(url.searchParams.get('zone'));
if (!zoneIdValidated) {
return new Response('Invalid Zone ID', {
status: 500
});
}
let content = '{"purge_everything":true}'
let headers = {
'Content-Type': 'application/json',
'X-Auth-Email': 'CF_EMAL', // Cloudflare API Auth Email
'X-Auth-Key': 'HERE_CF_API_KEY' //Cloudflare API Auth Key
}
const init = {
method: 'POST',
headers: headers,
body: content
}
const response = await fetch('https://api.cloudflare.com/client/v4/zones/'+url.searchParams.get('zone')+'/purge_cache', init)
return response
}Editor is loading...