From 6352f60bff16a2f87a5ae6728ca08d2ce7641516 Mon Sep 17 00:00:00 2001 From: Hiroshi Nishito Date: Fri, 17 Jan 2025 00:08:30 +0900 Subject: [PATCH] =?UTF-8?q?bugfix]=E5=85=AC=E9=96=8B=E3=83=9A=E3=83=BC?= =?UTF-8?q?=E3=82=B8=E3=81=8C=E3=82=A8=E3=83=A9=E3=83=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit backendで、authenticateUserを見に行っていたのが原因。認証不要のページでは、authenticateUserを見ない。 --- backend/src/index.ts | 23 ++++++++++++++--------- frontend/src/pages/PublicDocumentPage.tsx | 4 +--- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/backend/src/index.ts b/backend/src/index.ts index a22168a..68ced2c 100644 --- a/backend/src/index.ts +++ b/backend/src/index.ts @@ -25,17 +25,22 @@ export const app = express(); app.use(attachCorsHeaders); app.use(express.json()); -app.use(authenticateUser); // ローカル:モック or JWT検証 -// ルート定義例 -app.get("/api/docs", DocumentController.getDocumentsOfLoggedInUser); -app.get("/api/docs/:slug", DocumentController.getDocumentBySlugOfLoggedInUser); +// ===================== +// 認証不要ルート +// ===================== +app.get("/api/documents/:slug", DocumentController.getDocumentBySlugOfPublic); + + +// ===================== +// 認証が必要なルート +// ===================== +app.get("/api/docs", authenticateUser, DocumentController.getDocumentsOfLoggedInUser); +app.get("/api/docs/:slug", authenticateUser, DocumentController.getDocumentBySlugOfLoggedInUser); // @ts-ignore -app.post("/api/docs", DocumentController.createDocument); +app.post("/api/docs", authenticateUser, DocumentController.createDocument); // @ts-ignore -app.put("/api/docs/:slug", DocumentController.updateDocument); -app.delete("/api/docs/:slug", DocumentController.deleteDocument); - -app.get("/api/documents/:slug", DocumentController.getDocumentBySlugOfPublic); +app.put("/api/docs/:slug", authenticateUser, DocumentController.updateDocument); +app.delete("/api/docs/:slug", authenticateUser, DocumentController.deleteDocument); export const handler: Handler = serverlessHttp(app) as Handler; \ No newline at end of file diff --git a/frontend/src/pages/PublicDocumentPage.tsx b/frontend/src/pages/PublicDocumentPage.tsx index ceb814b..0890c61 100644 --- a/frontend/src/pages/PublicDocumentPage.tsx +++ b/frontend/src/pages/PublicDocumentPage.tsx @@ -1,7 +1,6 @@ // PublicDocumentPage.tsx import React, { useEffect, useState } from "react"; import { useParams, Link } from "react-router-dom"; -import { useAuthContextSwitch as useAuthContext } from "../context/useAuthContextSwitch"; import { useApiClient } from "../services/apiClient"; import styles from "../styles/DocPage.module.scss"; @@ -12,7 +11,6 @@ import ReactMarkdown from "react-markdown"; import DOMPurify from "dompurify"; const PublicDocumentPage: React.FC = () => { - const { user } = useAuthContext(); const { slug } = useParams<{ slug: string }>(); const [content, setContent] = useState(""); const [error, setError] = useState(null); @@ -31,7 +29,7 @@ const PublicDocumentPage: React.FC = () => { } }; fetchDocument(); - }, [slug, user, api]); + }, [slug, api]); if (error) { return (