Allow a fixed loopback port in blogger-auth

Supports web-application OAuth clients with a pre-registered
http://127.0.0.1:<port> redirect URI; desktop clients keep the random
port default.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
jsahn
2026-09-01 12:19:54 +09:00
co-authored by Claude Fable 5
parent 12d7b47f46
commit 5232631b44
+8 -1
View File
@@ -95,6 +95,13 @@ def build_parser() -> argparse.ArgumentParser:
"--client-secret", default=None, help="OAuth client secret (default: BLOGGER_CLIENT_SECRET)"
)
auth.add_argument("--timeout", type=int, default=300, help="seconds to wait for the browser consent")
auth.add_argument(
"--port",
type=int,
default=0,
help="fixed loopback port (0 = random). Use with a *web application* OAuth client whose "
"authorized redirect URI is registered as http://127.0.0.1:<port>",
)
return parser
@@ -191,7 +198,7 @@ def cmd_blogger_auth(args: argparse.Namespace, settings: Settings) -> int:
def log_message(self, *_args: object) -> None: # keep the terminal clean
pass
server = HTTPServer(("127.0.0.1", 0), Handler)
server = HTTPServer(("127.0.0.1", args.port), Handler)
port = server.server_address[1]
redirect_uri = f"http://127.0.0.1:{port}"
threading.Thread(target=server.serve_forever, daemon=True).start()