tor-browser

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

flexible_tokens.py (1499B)


      1 import importlib
      2 import json
      3 error_checker = importlib.import_module("fedcm.support.request-params-check")
      4 
      5 # Pre-computed token responses
      6 TOKEN_RESPONSES = {
      7  'string': '{"token": "simple_string_token"}',
      8  'positive-number': '{"token": 12345}',
      9  'negative-number': '{"token": -42}',
     10  'boolean-true': '{"token": true}',
     11  'boolean-false': '{"token": false}',
     12  'null': '{"token": null}',
     13  'zero': '{"token": 0}',
     14  'float': '{"token": 3.14159}',
     15  'array': '{"token": ["token1", "token2", "token3"]}',
     16  'empty-array': '{"token": []}',
     17  'mixed-array': '{"token": ["string", 123, true, null, {"key": "value"}]}',
     18  'object': '{"token": {"access_token": "abc123", "token_type": "Bearer", "expires_in": 3600}}',
     19  'empty-object': '{"token": {}}',
     20  'nested-object': '{"token": {"user": {"id": "123", "profile": {"name": "Test User", "preferences": {"theme": "dark"}}}}}',
     21 }
     22 
     23 def main(request, response):
     24  request_error = error_checker.tokenCheck(request)
     25  if request_error:
     26    return request_error
     27 
     28  response.headers.set(b"Content-Type", b"application/json")
     29  response.headers.set(b"Access-Control-Allow-Origin", request.headers.get(b"Origin"))
     30  response.headers.set(b"Access-Control-Allow-Credentials", "true")
     31 
     32  token_type = 'string'  # default
     33 
     34  param_string = request.POST.get(b"params").decode("utf-8")
     35  param_obj = json.loads(param_string)
     36  if 'token_type' in param_obj:
     37    token_type = param_obj['token_type']
     38 
     39  return TOKEN_RESPONSES.get(token_type, TOKEN_RESPONSES['string'])