diff --git a/routers/sessions.go b/routers/sessions.go index bea3d5b..3ebaaa8 100644 --- a/routers/sessions.go +++ b/routers/sessions.go @@ -140,19 +140,22 @@ func SessionsItemDelete(w http.ResponseWriter, r *http.Request) { user := models.User{ID: session.UserID} configs.ORMDB().Find(&user) - sessionx := models.Session{ID: mux.Vars(r)["session_id"]} + // 獲取目標 session + sessionx := models.Session{ID: mux.Vars(r)["id"]} if err := configs.ORMDB().Find(&sessionx).Error; err != nil { w.WriteHeader(http.StatusNotFound) w.Write([]byte("404 - Not Found")) return } + // 驗證用戶身(只能刪除自己的會話) if user.ID != sessionx.UserID { w.WriteHeader(http.StatusUnauthorized) - w.Write([]byte("401 - 沒有權限")) + w.Write([]byte("401 - 沒有權限:")) return } + // 刪除目标會話 if err := configs.ORMDB().Delete(&sessionx).Error; err != nil { w.WriteHeader(http.StatusNotFound) w.Write([]byte("404 - Not Found"))