tor-browser

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

cors-cookie.py (1248B)


      1 from datetime import datetime
      2 
      3 def main(request, response):
      4    last_event_id = request.headers.get(b"Last-Event-Id", b"")
      5    ident = request.GET.first(b'ident', b"test")
      6    cookie = b"COOKIE" if ident in request.cookies else b"NO_COOKIE"
      7    origin = request.GET.first(b'origin', request.headers[b"origin"])
      8    credentials = request.GET.first(b'credentials', b'true')
      9 
     10    headers = []
     11 
     12    if origin != b'none':
     13        headers.append((b"Access-Control-Allow-Origin", origin));
     14 
     15    if credentials != b'none':
     16        headers.append((b"Access-Control-Allow-Credentials", credentials));
     17 
     18    if last_event_id == b'':
     19        headers.append((b"Content-Type", b"text/event-stream"))
     20        response.set_cookie(ident, b"COOKIE")
     21        data = b"id: 1\nretry: 200\ndata: first %s\n\n" % cookie
     22    elif last_event_id == b'1':
     23        headers.append((b"Content-Type", b"text/event-stream"))
     24        long_long_time_ago = datetime.now().replace(year=2001, month=7, day=27)
     25        response.set_cookie(ident, b"COOKIE", expires=long_long_time_ago)
     26        data = b"id: 2\ndata: second %s\n\n" % cookie
     27    else:
     28        headers.append((b"Content-Type", b"stop"))
     29        data = b"data: " + last_event_id + cookie + b"\n\n";
     30 
     31    return headers, data