tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

echo-as-json.py (1110B)


      1 import json
      2 
      3 from wptserve.utils import isomorphic_decode
      4 
      5 def main(request, response):
      6    headers = [(b"Content-Type", b"application/json"),
      7               (b"Access-Control-Allow-Credentials", b"true")]
      8 
      9    if b"origin" in request.headers:
     10        headers.append((b"Access-Control-Allow-Origin", request.headers[b"origin"]))
     11 
     12    body = u""
     13 
     14    # If we're in a preflight, verify that `Sec-Fetch-Mode` is `cors`.
     15    if request.method == u'OPTIONS':
     16        if request.headers.get(b"sec-fetch-mode") != b"cors":
     17            return (403, b"Failed"), [], body
     18 
     19        headers.append((b"Access-Control-Allow-Methods", b"*"))
     20        headers.append((b"Access-Control-Allow-Headers", b"*"))
     21    else:
     22        body = json.dumps({
     23            u"dest": isomorphic_decode(request.headers.get(b"sec-fetch-dest", b"")),
     24            u"mode": isomorphic_decode(request.headers.get(b"sec-fetch-mode", b"")),
     25            u"site": isomorphic_decode(request.headers.get(b"sec-fetch-site", b"")),
     26            u"user": isomorphic_decode(request.headers.get(b"sec-fetch-user", b"")),
     27            })
     28 
     29    return headers, body