package user import ( "context" "net/http" "backend/usercenter/api/internal/logic/user" "backend/usercenter/api/internal/svc" "backend/usercenter/api/internal/types" "github.com/zeromicro/go-zero/rest/httpx" ) // 用户登出 func UserLogoutHandler(svcCtx *svc.ServiceContext) http.HandlerFunc { return func(w http.ResponseWriter, r *http.Request) { var req types.LogoutRequest if err := httpx.Parse(r, &req); err != nil { httpx.ErrorCtx(r.Context(), w, err) return } // 获取请求头里的token token := r.Header.Get("Authorization") // 如果有token, 使用context传值到logic中 if token != "" { ctx := context.WithValue(r.Context(), "token", token) r = r.WithContext(ctx) } l := user.NewUserLogoutLogic(r.Context(), svcCtx) resp, err := l.UserLogout(&req) if err != nil { httpx.ErrorCtx(r.Context(), w, err) } else { httpx.OkJsonCtx(r.Context(), w, resp) } } }