[refactor] proxy2

This commit is contained in:
kwaroran
2023-07-07 06:20:02 +09:00
parent 73b86f0a64
commit ead670516d
8 changed files with 76 additions and 87 deletions

58
functions/proxy2.js Normal file
View File

@@ -0,0 +1,58 @@
export function onRequest(context) {
const request = context.request
return fetchProxy(request);
}
const blocked_region = []
async function fetchProxy(request) {
const region = (request.headers.get('cf-ipcountry') ?? '').toUpperCase();
let response = null;
let rurl = new URL(request.url);
const urlParam = rurl.searchParams.get('url')
if(!urlParam){
return new Response('Access denied', {
status: 403
});
}
if (blocked_region.includes(region)) {
response = new Response('Access denied', {
status: 403
});
} else {
let method = request.method;
const header = JSON.parse(decodeURIComponent(request.headers.get('risu-header') ?? 'null')) ?? request.headers
let requestHeaders = new Headers(header);
let originalResponse = await fetch(urlParam, {
method: method,
headers: requestHeaders,
body: request.body
})
const responseHeaders = originalResponse.headers;
const status = originalResponse.status;
let newResponseHeaders = new Headers(responseHeaders);
newResponseHeaders.set('access-control-allow-origin', 'https://risuai.xyz/');
newResponseHeaders.set('access-control-allow-credentials', "true");
newResponseHeaders.delete('content-security-policy');
newResponseHeaders.delete('content-security-policy-report-only');
newResponseHeaders.delete('clear-site-data');
newResponseHeaders.delete('Cache-Control');
const originalBody = originalResponse.body
response = new Response(originalBody, {
status,
headers: newResponseHeaders
})
}
return response;
}