이미지 저장 방식 변경
문제상황
- 기존에는 이미지 파일을 서버 파일 시스템에 저장하고, DB에는 이미지 경로를 저장하는 방식으로 구현.
- 하지만 협업을 진행하면서 각자의 서버 파일 시스템에 이미지가 저장되는 상황에서 동기화 문제가 발생.
- DB에는 이미지 경로가 저장되어 있지만 서버 로컬 파일 시스템에는 해당 이미지가 없는 경우가 있어 이미지를 가져오지 못하는 상황 발생.
해결방안
- 동기화를 위해 백엔드 서버를 클라우드에 배포하여 사용하거나
- 하나의 로컬 서버를 여러 사람이 공동으로 사용하는 방식으로 해결
사용자 인증, 로그인 유효시간 및 토큰 관리
사용자 인증 및 토큰 관리
- 백엔드는 Authorization 헤더를 통해 전달된 토큰을 검사하여 사용자의 로그인 상태를 관리.
- 로그인 후, login 테이블에 email, token, logintime을 저장하여 사용자의 인증 상태를 추적.
- 이를 통해 토큰 기반의 인증을 수행하며, 인증된 사용자가 요청을 보낼 수 있도록 함.
로그인 유효시간 관리
- 조회 요청: 상품을 조회하는 요청은 로그인 상태와 관계없이 처리. 만약 Authorization 헤더가 있다면, 토큰의 유효성을 확인하고 로그인 시간을 갱신. Authorization이 없다면 로그인 없이 조회할 수 있음.
- 등록, 수정, 삭제 요청: 이 요청들은 Authorization 헤더가 필수로 포함되어야 함. 헤더가 포함되지 않거나 토큰이 유효하지 않으면 예외 처리.
- 토큰 수명 관리: 로그인 후 30분이 경과하면 토큰의 유효시간이 만료. 이를 위해 logintime과 현재 시간을 비교하여 30분 이내인지 확인. 유효하지 않은 토큰으로 요청을 보낸 경우, 예외를 발생시킴.
토큰 수명 만료 시 처리
- 수명 만료된 토큰: 로그인 후 30분이 경과하면 토큰이 만료. 만료된 토큰으로 요청을 보내면 예외가 발생하고, 로그인 테이블에서 해당 토큰은 삭제.
'[LG 유플러스] 유레카 > 프로젝트' 카테고리의 다른 글
[번개장터 클론코딩][Spring Boot] 회원가입 시 이메일 및 닉네임 중복 검사 구현 (0) | 2025.03.18 |
---|---|
[번개장터 클론코딩][JS] 기본 구조, 로그인, 회원가입 구현, SPA (0) | 2025.03.15 |
[번개장터 클론코딩][Spring Boot] 로그인, 회원가입 기능 구현 (0) | 2025.03.14 |