def start_local_server()

in util/generate_user_token.py [0:0]


def start_local_server(port, result_container):
    def app(environ, start_response):
        query = environ.get("QUERY_STRING", "")
        params = urllib.parse.parse_qs(query)
        if "code" in params and "state" in params:
            result_container["query_params"] = {k: v[0] for k, v in params.items()}
            response_body = b"Authentication complete. You can close this window."
        else:
            response_body = b"Authorization code or state not found."
        start_response("200 OK", [("Content-Type", "text/plain")])
        return [response_body]

    server = make_server("localhost", port, app)
    threading.Thread(target=server.serve_forever, daemon=True).start()
    return server