Skip to content

[Fix/#135] 비회원 메시지 작성 api 수정#136

Merged
hyesngy merged 1 commit intodevelopfrom
fix/#135
Dec 21, 2025
Merged

[Fix/#135] 비회원 메시지 작성 api 수정#136
hyesngy merged 1 commit intodevelopfrom
fix/#135

Conversation

@hyesngy
Copy link
Copy Markdown
Member

@hyesngy hyesngy commented Dec 21, 2025

Summary

관련 있는 Issue를 태그해주세요. (e.g. > - #100)
closed #135
비회원 메시지 작성 api 수정

Tasks

  • 비회원 메시지 작성 api 수정

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 인증된 사용자를 위한 보드 공유 링크 조회 기능이 추가되었습니다.
  • 개선

    • 공개 및 인증 기반 API 엔드포인트 처리 방식이 개선되었습니다.
    • 메시지 발송 시 공개 API를 사용하도록 변경되었습니다.
    • 인증 확인 프로세스가 최적화되어 보안과 기능성이 강화되었습니다.

✏️ Tip: You can customize this high-level summary in your review settings.

@hyesngy hyesngy self-assigned this Dec 21, 2025
@hyesngy hyesngy added the 🛠 Fix 버그 수정 label Dec 21, 2025
@hyesngy hyesngy linked an issue Dec 21, 2025 that may be closed by this pull request
@vercel
Copy link
Copy Markdown

vercel bot commented Dec 21, 2025

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Review Updated (UTC)
2025-seasonthon-team-80-fe Ready Ready Preview, Comment Dec 21, 2025 2:21pm

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Dec 21, 2025

걸어가기

공개 및 인증된 API 호출을 구분하기 위해 새로운 API 헬퍼를 추가하고 기존 함수 호출을 업데이트했습니다. 비회원 메시지 작성 시 불필요한 인증 토큰 전송 문제를 해결합니다.

변경 사항

코호트 / 파일 변경 요약
API 헬퍼 확대
src/lib/api.ts
apiGetAuthCheck 함수 추가: skipAuthRedirect 헤더를 사용하는 GET 헬퍼. apiPostPublic 함수 추가: skipAuthRedirect와 withCredentials: false 설정하는 POST 헬퍼.
API 계층 업데이트
src/apis/message.ts, src/apis/board.ts
message.ts에서 postMessage가 apiPost에서 apiPostPublic으로 변경. board.ts에서 새로운 getBoardShareForAuth 함수 추가: apiGetAuthCheck를 사용하는 인증된 공유 링크 가져오기.
저장소 업데이트
src/stores/useAuthStore.ts
checkAuth 함수에서 getBoardShare 대신 getBoardShareForAuth 사용하도록 import 및 함수 호출 변경.

예상 코드 검토 노력

🎯 2 (Simple) | ⏱️ ~10 분

  • 주의 대상:
    • apiGetAuthCheckapiPostPublic의 헤더 설정(skipAuthRedirect, withCredentials) 검증 필요
    • 비회원 메시지 작성 엔드포인트에서 인증 토큰이 실제로 전송되지 않는지 확인
    • getBoardShareForAuth 호출 시 올바른 헬퍼 함수 사용 여부 확인

🐰 비회원이 메시지를 보낼 때,
토큰이 몰래 따라다니지 않도록,
새로운 길을 만들어주었네요.
공개와 인증의 길이 나뉘어,
리다이렉트 오류는 사라졌어요! ✨

Pre-merge checks and finishing touches

✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목은 '[Fix/#135] 비회원 메시지 작성 api 수정'으로 변경 사항을 명확하게 요약하고 있으며, 관련 이슈 번호를 포함하고 있습니다.
Description check ✅ Passed PR 설명은 필수 섹션인 Summary와 Tasks를 모두 포함하고 있으며, 관련 이슈를 태그했으나 내용이 간결합니다.
Linked Issues check ✅ Passed 코드 변경사항이 이슈 #135의 요구사항을 충족합니다. 비회원 메시지 API에서 토큰을 제거하기 위해 apiPostPublic을 도입하고, 인증 확인 로직에서 apiGetAuthCheck를 사용하여 skipAuthRedirect 헤더를 설정했습니다.
Out of Scope Changes check ✅ Passed 모든 변경사항이 비회원 메시지 작성 API의 토큰 제거 요구사항과 관련되어 있으며, 이슈 #135 범위 내에 있습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
  • 📝 Generate docstrings
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch fix/#135

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions
Copy link
Copy Markdown

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 0

🧹 Nitpick comments (1)
src/lib/api.ts (1)

25-37: 인증 체크용 함수의 동작 방식을 확인하세요.

apiGetAuthCheckskipAuthRedirect: "true" 헤더를 포함하지만 withCredentials: false를 설정하지 않습니다. 즉, 이 함수는 여전히 인증 정보(쿠키, Authorization 헤더)를 포함하여 요청을 보내지만, 인증 실패 시 자동 리다이렉트를 방지합니다.

apiGetPublic(lines 11-23)과의 차이점:

  • apiGetAuthCheck: 인증된 요청이지만 실패 시 리다이렉트 스킵
  • apiGetPublic: 비인증 요청 (withCredentials: false 포함)

함수 이름과 주석이 이러한 의미 차이를 명확히 전달하는지 확인해주세요.

📜 Review details

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 6ee231e and 6c069e4.

📒 Files selected for processing (4)
  • src/apis/board.ts (2 hunks)
  • src/apis/message.ts (1 hunks)
  • src/lib/api.ts (2 hunks)
  • src/stores/useAuthStore.ts (2 hunks)
🧰 Additional context used
🧬 Code graph analysis (3)
src/stores/useAuthStore.ts (1)
src/apis/board.ts (1)
  • getBoardShareForAuth (37-40)
src/apis/board.ts (3)
src/types/board.ts (1)
  • GetBoardShareResponse (12-17)
src/lib/api.ts (1)
  • apiGetAuthCheck (26-37)
src/apis/config/endpoints.ts (1)
  • API_ENDPOINTS (1-33)
src/apis/message.ts (2)
src/types/message.ts (1)
  • MessageData (1-12)
src/lib/api.ts (1)
  • apiPostPublic (47-58)
🔇 Additional comments (4)
src/lib/api.ts (1)

47-58: LGTM! 비회원 API 호출을 위한 올바른 구현입니다.

apiPostPublic 함수가 skipAuthRedirect: "true"withCredentials: false를 모두 설정하여 비회원 요청에서 Authorization 헤더를 제거합니다. 이는 PR 목표와 정확히 일치합니다.

src/apis/message.ts (1)

2-2: ✅ 핵심 수정사항 - 비회원 메시지 작성 API 수정 완료

apiPost에서 apiPostPublic으로 변경하여 비회원 메시지 작성 시 Authorization 헤더가 포함되지 않도록 수정했습니다. 이는 issue #135에서 보고된 토큰 재발급 및 리다이렉트 오류를 해결합니다.

apiPostPublicwithCredentials: false를 설정하여 인증 정보를 보내지 않으므로, 비회원 사용자가 메시지를 작성할 때 의도한 대로 동작합니다.

Also applies to: 8-11

src/stores/useAuthStore.ts (1)

2-2: LGTM! 인증 체크 시 리다이렉트 방지

getBoardShareForAuth를 사용하여 인증 상태 확인 중 실패 시에도 자동 리다이렉트가 발생하지 않도록 수정했습니다. 이는 apiGetAuthCheck를 사용하는 새로운 함수로, skipAuthRedirect: "true" 헤더를 포함하여 인증 체크 흐름에서 불필요한 리다이렉트를 방지합니다.

Also applies to: 36-36

src/apis/board.ts (1)

36-40: LGTM! 인증 체크용 보드 공유 API 추가

기존 getBoardShare 함수와 병행하여 인증 체크용 함수를 추가했습니다. apiGetAuthCheck를 사용하여 인증 실패 시에도 자동 리다이렉트를 방지하면서 보드 공유 정보를 가져올 수 있습니다.

두 함수의 역할 구분:

  • getBoardShare (line 32-34): 일반적인 인증된 요청
  • getBoardShareForAuth (lines 36-40): 인증 상태 확인용, 실패 시 리다이렉트 없음

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🛠 Fix 버그 수정

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Fix]: 비회원 메시지 작성 시 리다이렉트 오류

1 participant