반응형
프론트엔드 적용 요약
- 내 메시지에는 신고/차단 버튼 숨김
(
)msg.sender._id !== session.user.id
- 차단한 사용자의 메시지 리스트에서 자동 필터링
- 신고 버튼: 신고 사유 프롬프트,
호출, 성공 시 안내/api/report
- 차단 버튼: 확인 후
호출, 성공 시 안내 및 즉시 리스트에서 숨김/api/block
2. 백엔드 적용 요약
- User 모델:
,isBanned
필드blockedUsers
- Report 모델: 신고 내역 저장
- /api/report:
- 동일 메시지 중복 신고 불가
- 유저 단위 누적 10회 이상 자동 정지
- /api/block: 차단목록 추가
- /api/user/me: 내 차단목록 반환 (프론트 필터링용)
- 메시지 전송: 차단된 유저가 메시지 보내면 거부
3. 로그인 시 계정정지 안내
- 추후 NextAuth 콜백(로그인/세션 생성)에서
가 true면isBanned
"계정이 정지되었습니다. 자세한 사항은 관리자에게 연락바랍니다."
메시지로 로그인 거부 처리 필요
(이 부분도 바로 추가 가능!)
4. 복구/운영
- 운영자는 DB에서
로 변경하면 즉시 복구 가능isBanned: false
반응형