···
"Coves/internal/core/communities"
···
-
// TODO(Communities-OAuth): Extract authenticated user DID from request context
-
// This MUST be replaced with OAuth middleware before production deployment
-
// Expected implementation:
-
// userDID := r.Context().Value("authenticated_user_did").(string)
-
// For now, we read from header (INSECURE - allows impersonation)
-
userDID := r.Header.Get("X-User-DID")
writeError(w, http.StatusUnauthorized, "AuthRequired", "Authentication required")
// Subscribe via service (write-forward to PDS)
-
subscription, err := h.service.SubscribeToCommunity(r.Context(), userDID, req.Community)
handleServiceError(w, err)
···
-
// TODO(Communities-OAuth): Extract authenticated user DID from request context
-
// This MUST be replaced with OAuth middleware before production deployment
-
// Expected implementation:
-
// userDID := r.Context().Value("authenticated_user_did").(string)
-
// For now, we read from header (INSECURE - allows impersonation)
-
userDID := r.Header.Get("X-User-DID")
writeError(w, http.StatusUnauthorized, "AuthRequired", "Authentication required")
// Unsubscribe via service (delete record on PDS)
-
err := h.service.UnsubscribeFromCommunity(r.Context(), userDID, req.Community)
handleServiceError(w, err)
···
+
"Coves/internal/api/middleware"
"Coves/internal/core/communities"
···
+
// Extract authenticated user DID and access token from request context (injected by auth middleware)
+
userDID := middleware.GetUserDID(r)
writeError(w, http.StatusUnauthorized, "AuthRequired", "Authentication required")
+
userAccessToken := middleware.GetUserAccessToken(r)
+
if userAccessToken == "" {
+
writeError(w, http.StatusUnauthorized, "AuthRequired", "Missing access token")
// Subscribe via service (write-forward to PDS)
+
subscription, err := h.service.SubscribeToCommunity(r.Context(), userDID, userAccessToken, req.Community)
handleServiceError(w, err)
···
+
// Extract authenticated user DID and access token from request context (injected by auth middleware)
+
userDID := middleware.GetUserDID(r)
writeError(w, http.StatusUnauthorized, "AuthRequired", "Authentication required")
+
userAccessToken := middleware.GetUserAccessToken(r)
+
if userAccessToken == "" {
+
writeError(w, http.StatusUnauthorized, "AuthRequired", "Missing access token")
// Unsubscribe via service (delete record on PDS)
+
err := h.service.UnsubscribeFromCommunity(r.Context(), userDID, userAccessToken, req.Community)
handleServiceError(w, err)