fix
This commit is contained in:
parent
292f4f5603
commit
04fb72c14c
|
|
@ -26,12 +26,11 @@ def register_user(
|
||||||
password: Optional[str] = typer.Option(None, "--password", "-p", help="密码(不提供则交互式输入)")
|
password: Optional[str] = typer.Option(None, "--password", "-p", help="密码(不提供则交互式输入)")
|
||||||
):
|
):
|
||||||
"""注册新用户"""
|
"""注册新用户"""
|
||||||
|
response = create_response_handler(str(uuid4()))
|
||||||
try:
|
try:
|
||||||
response = create_response_handler(uuid4())
|
|
||||||
# 获取密码
|
# 获取密码
|
||||||
if not password:
|
if not password:
|
||||||
response.error("❌ 密码不能为空")
|
response.error(-32602, "❌ 密码不能为空")
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
# 执行注册
|
# 执行注册
|
||||||
|
|
@ -43,68 +42,31 @@ def register_user(
|
||||||
})
|
})
|
||||||
response.success(result)
|
response.success(result)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
response.error(f"❌ 注册失败: {str(e)}")
|
response.error(-32603, f"❌ 注册失败: {str(e)}")
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
|
|
||||||
@auth_app.command("login")
|
@auth_app.command("login")
|
||||||
def login_user(
|
def login_user(
|
||||||
username_or_email: str = typer.Argument(..., help="用户名或邮箱"),
|
username_or_email: str = typer.Argument(..., help="用户名或邮箱"),
|
||||||
password: Optional[str] = typer.Option(None, "--password", "-p", help="密码(不提供则交互式输入)"),
|
password: Optional[str] = typer.Option(None, "--password", "-p", help="密码(不提供则交互式输入)")
|
||||||
verbose: bool = typer.Option(False, "--verbose", "-v", help="详细输出"),
|
|
||||||
json_output: bool = typer.Option(False, "--json", help="JSON格式输出")
|
|
||||||
):
|
):
|
||||||
"""用户登录"""
|
"""用户登录"""
|
||||||
|
response = create_response_handler(str(uuid4()))
|
||||||
try:
|
try:
|
||||||
console.print(f"🔐 [bold blue]用户登录[/bold blue]")
|
|
||||||
console.print(f"用户名/邮箱: {username_or_email}")
|
|
||||||
|
|
||||||
# 获取密码
|
# 获取密码
|
||||||
if not password:
|
if not password:
|
||||||
password = getpass.getpass("请输入密码: ")
|
response.error(-32602, "❌ 密码不能为空")
|
||||||
if not password:
|
raise typer.Exit(1)
|
||||||
console.print("[red]❌ 密码不能为空[/red]")
|
|
||||||
raise typer.Exit(1)
|
|
||||||
|
|
||||||
# 执行登录
|
# 执行登录
|
||||||
result = auth_api.login({
|
result = auth_api.login({
|
||||||
"username_or_email": username_or_email,
|
"username_or_email": username_or_email,
|
||||||
"password": password
|
"password": password
|
||||||
})
|
})
|
||||||
|
response.success(result)
|
||||||
if result["success"]:
|
|
||||||
if json_output:
|
|
||||||
# JSON格式输出
|
|
||||||
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
||||||
else:
|
|
||||||
console.print(f"\n✅ [bold green]登录成功![/bold green]")
|
|
||||||
console.print(f"欢迎回来,{result['data']['user']['display_name']}!")
|
|
||||||
console.print(f"最后登录: {result['data']['user']['last_login']}")
|
|
||||||
|
|
||||||
if verbose:
|
|
||||||
# 显示详细信息
|
|
||||||
user_info = f"""
|
|
||||||
🆔 用户ID: {result['data']['user']['id']}
|
|
||||||
👤 用户名: {result['data']['user']['username']}
|
|
||||||
📧 邮箱: {result['data']['user']['email']}
|
|
||||||
🏷️ 显示名称: {result['data']['user']['display_name']}
|
|
||||||
🕒 最后登录: {result['data']['user']['last_login']}
|
|
||||||
🔑 Token: {result['data']['token'][:50]}...
|
|
||||||
⏰ 过期时间: {result['data']['expires_at']}
|
|
||||||
"""
|
|
||||||
|
|
||||||
panel = Panel(user_info.strip(), title="登录信息", border_style="green")
|
|
||||||
console.print(panel)
|
|
||||||
else:
|
|
||||||
if json_output:
|
|
||||||
print(json.dumps(result, ensure_ascii=False, indent=2))
|
|
||||||
else:
|
|
||||||
console.print(f"[red]❌ 登录失败: {result['message']}[/red]")
|
|
||||||
raise typer.Exit(1)
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
console.print(f"[red]❌ 登录失败: {str(e)}[/red]")
|
response.error(-32603, f"❌ 注册失败: {str(e)}")
|
||||||
raise typer.Exit(1)
|
raise typer.Exit(1)
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -59,8 +59,13 @@ class EnhancedJSONRPCResponse:
|
||||||
|
|
||||||
def error(self, code: int, message: str, data: Any = None) -> None:
|
def error(self, code: int, message: str, data: Any = None) -> None:
|
||||||
"""发送错误响应"""
|
"""发送错误响应"""
|
||||||
error = JSONRPCError(code=code, message=message, data=data)
|
error_obj = {
|
||||||
response = JSONRPC20Response(error=error, _id=self.request_id)
|
"code": code,
|
||||||
|
"message": message
|
||||||
|
}
|
||||||
|
if data is not None:
|
||||||
|
error_obj["data"] = data
|
||||||
|
response = JSONRPC20Response(error=error_obj, _id=self.request_id)
|
||||||
self._send_response(response.data)
|
self._send_response(response.data)
|
||||||
|
|
||||||
def progress(self, step: str, progress: int, message: str,
|
def progress(self, step: str, progress: int, message: str,
|
||||||
|
|
|
||||||
|
|
@ -77,8 +77,7 @@ class PythonCliAuth {
|
||||||
const response: PythonCliAuthResponse = await invoke('python_cli_auth_login', {
|
const response: PythonCliAuthResponse = await invoke('python_cli_auth_login', {
|
||||||
request: {
|
request: {
|
||||||
username_or_email: username_or_email,
|
username_or_email: username_or_email,
|
||||||
password: credentials.password,
|
password: credentials.password
|
||||||
json_output: true
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -138,7 +137,6 @@ class PythonCliAuth {
|
||||||
email: credentials.email,
|
email: credentials.email,
|
||||||
password: credentials.password,
|
password: credentials.password,
|
||||||
display_name: credentials.displayName,
|
display_name: credentials.displayName,
|
||||||
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
console.log({ response })
|
console.log({ response })
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue