Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: 로그아웃 API 구현 #10

Open
wants to merge 15 commits into
base: develop
Choose a base branch
from
Open

Feature: 로그아웃 API 구현 #10

wants to merge 15 commits into from

Conversation

ujamX
Copy link

@ujamX ujamX commented Sep 10, 2023


PR Type ✔️

  • Feature - 기능 개발
  • Fix - 버그 수정
  • Code Style - 코드 스타일
  • Refactoring - 리팩토링
  • Document - 문서
  • Others - 빌드, 배포 및 의존성 등 기타사항

Summary(요약) ⭐

로그아웃 API 구현

Describe your changes(상세) 🧾

  • 로그아웃 시 session을 invalidate 처리했습니다
  • 로그아웃에 성공했다는 문자열을 반환합니다.
  • 로그아웃 테스트는 session을 만든 후 로그아웃 동작 후 세션이 정상적으로 invalidate 처리 됐는지 검증합니다.

Issue Number or Link 🔗


Reference


CreateScheduleRequest.java
CreateScheduleResponse.java
 - 일정 등록 사용자 연결을 위해 request, response에 userId 필드 추가
ScheduleService.java
 - userId를 필요로하는 API에 userId 관련 작업 추가
ScheduleServiceTest.java
 - 스케줄 생성 및 스케줄 아이디로 단일 스케줄 조회 시 userId 필드 관련 테스트 추가
@yh0921k
Copy link
Owner

yh0921k commented Sep 16, 2023

e450d41

  • 세션, 쿠키, 권한 등 관련된 작업은 보통 컨트롤러에서 처리합니다.
  • HttpServletRequest를 서비스 레이어까지 내리지 않습니다.

  • 위의 사항 관련, 로그인 기능 구현 관련하여 해당 PR은 조금 추후에 작업하시는게 좋을듯 합니다.
    • 서비스 및 컨트롤러 전반적인 변경 필요

@ujamX ujamX force-pushed the feature/logout branch 3 times, most recently from b371afd to 4a85a7e Compare September 21, 2023 13:48
Company.java
 - 회사에 대한 테이블
 - 아이디, 이름, 연락처, 주소 필드로 구성
 - 회사 로그인 아이디가 다수 일 경우도 있고 각 아이디마다 부여되는 권한이 다를 수 있기 때문에 회사 로그인 관련 정보는 정규화하여 구성할 예정
CompanyRepository.java
 - 회사 테이블에 대한 Repository 구현
Authority.java
 - 회사 계정마다 부여되는 권한이 다를 수 있어 enum type 추가
 - 현재 개발 초기 단계여서 ADMIN만 구성해놓은 상태
 - 추후에 SUPER_ADMIN 등 여러 권한이 추가될 가능성이 있음
CompanyAccount.java
 - 회사 계정에 대한 테이블
 - 아이디, 이름, 로그인아이디, 로그인비밀번호, 권한 필드로 구성
 - 회사마다 아이디가 다수로 생길 수 있어 정규화하여 엔티티 구현
CompanyAccountRepository.java
 - 회사 테이블에 대한 Repository 구현
CompanyAccount.java
 - @Enumerated 어노테이션 적용
 - EnumType.STRING으로 DB에 저장 시 Enum의 선언된 상수의 이름을 String 값으로 저장해준다.
 UserRole.java
  - Authority -> UserRole 파일명 변경
  - 생성자와 final 필드 추가
Admin.java
 - 아이디 정책이 메일이라 loginId -> email로 수정
 - 기존보다 명확한 필드명으로 일부 변경
UserRole.java
 - Authority / Role이 추후 시큐리티 도입 시 차이가 존재함
 - authority -> name이라는 명명으로 변경
AuthService.java
AuthServiceTest.java
 - 로그아웃 시 session을 invalidate 처리
 - 로그아웃에 성공했다는 문자열을 return
 - 로그아웃 테스트는 session을 만든 후 로그아웃 동작 후 세션이 정상적으로 invalidate 처리 됐는지 검증
AuthController.java
AuthControllerTest.java
 - 로그아웃 핸들러 구현
 - 로그아웃 API 호출 시 정상 작동하는지 검증
@yh0921k yh0921k force-pushed the develop branch 2 times, most recently from 602039f to f663cbe Compare October 14, 2023 04:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants