From 73c05ef112b50c0693d5fc38c297194d6b7e67c2 Mon Sep 17 00:00:00 2001 From: OpenClaw Agent Date: Tue, 22 Sep 2026 04:50:44 +0800 Subject: [PATCH] fix: treat guest as unauthenticated in user state --- internal/api/server.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/internal/api/server.go b/internal/api/server.go index b9cd8cf..8ddb111 100644 --- a/internal/api/server.go +++ b/internal/api/server.go @@ -563,7 +563,14 @@ func (s *Server) me(w http.ResponseWriter, r *http.Request) { writeJSONError(w, http.StatusUnauthorized, "not authenticated") return } - writeJSON(w, map[string]any{"username": a.Username, "home": a.Home, "admin": a.Admin, "mask": permString(a.MaskFor(a.Home)), "managed": a.PasswordHash != "", "enabled": a.Enabled}) + // The anonymous account is an authorization identity, not a logged-in user. + // Keep its internal username for permission matching, but expose an empty + // username to the UI so an initial visit is correctly shown as "访客". + username := a.Username + if a == s.Auth.Guest { + username = "" + } + writeJSON(w, map[string]any{"username": username, "home": a.Home, "admin": a.Admin, "mask": permString(a.MaskFor(a.Home)), "managed": a.PasswordHash != "", "enabled": a.Enabled}) } type accessibleRoot struct {