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:
+8
-1
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user