postmessage-credentials.py (905B)
1 def main(request, response): 2 cookie = request.cookies.first(b"COOKIE_NAME", None) 3 4 response_headers = [(b"Content-Type", b"text/javascript"), 5 (b"Access-Control-Allow-Credentials", b"true")] 6 7 origin = request.headers.get(b"Origin", None) 8 if origin: 9 response_headers.append((b"Access-Control-Allow-Origin", origin)) 10 11 cookie_value = b''; 12 if cookie: 13 cookie_value = cookie.value; 14 return (200, response_headers, 15 b"if ('DedicatedWorkerGlobalScope' in self &&" + 16 b" self instanceof DedicatedWorkerGlobalScope) {" + 17 b" postMessage('"+cookie_value+b"');" + 18 b"} else if (" + 19 b" 'SharedWorkerGlobalScope' in self &&" + 20 b" self instanceof SharedWorkerGlobalScope) {" + 21 b" onconnect = e => e.ports[0].postMessage('"+cookie_value+b"');" + 22 b"}")