728x90 320x100 💻 뚝딱뚝딱/북북클럽36 [개발일지 #011] Oauth 로그인 구현 (구글) 🎯 오늘의 목표Oauth 로그인 구현 (구글) ⚙️ 진행한 작업Oauth 로그인 구현 (구글)🛠️ 개발내용✅ Oauth 로그인을 도입하는 이유장점설명🔑 로그인 개발/유지보수 부담 감소비밀번호 저장, 해싱, 변경, 분실 처리 로직이 없어도 됨🪪 신뢰성 있는 사용자 정보 제공구글, 네이버 등에서 직접 검증된 정보(email 등)를 제공📱 소셜 연동 쉽게 구현 가능로그인 + 프로필 불러오기 + 인증 절차까지 한 번에 가능👌 사용자 진입 장벽 낮음사용자는 회원가입 없이 "구글로 로그인"으로 빠르게 진입🔒 보안적으로 우수함인증/인가를 제공업체(Google 등)에게 위임 → 우리가 직접 비밀번호를 다루지 않음🌍 다양한 플랫폼과 연동하나의 인증 방식으로 웹, 모바일, 외부 API까지 모두 대응 가능위와.. 2025. 4. 24. [개발일지 #010] 회원가입 수정 (6개월 이내 재가입 불가능) 🎯 오늘의 목표회원가입시 탈퇴한 회원은 6개월 이내 같은 이메일로 가입 불가능하도록 구현 ⚙️ 진행한 작업회원가입시 탈퇴한 회원은 6개월 이내 같은 이메일로 가입 불가능하도록 구현UserSerivce의 회원가입 메서드 코드 리팩토링🛠️ 개발내용📌 UserSerivce.java 수정 public UserResponse signup(UserSignupRequest request){ validateEmailVerification(request.getEmail()); validateRejoinAvailable(request.getEmail()); validateDuplicateNickname(request.getNickname()); User use.. 2025. 4. 23. [개발일지 #009] 회원탈퇴 구현 (Spring Scheduler) 🎯 오늘의 목표회원탈퇴 구현 ⚙️ 진행한 작업회원탈퇴 구현탈퇴한지 1년이 지난 회원에 한해서 물리 삭제🛠️ 개발내용📌 User 엔티티 수정 (User.java)논리삭제용 필드 추가탈퇴 도메인 메서드 추가private LocalDateTime withdrawnAt;public void withdraw() { this.status = UserStatus.WITHDRAWN; this.withdrawnAt = LocalDateTime.now();} 📌 탈퇴 메서드 추가 (UserService.java)@Transactionalpublic void withdraw(Long userId) { User user = userRepository.findById(userId) .. 2025. 4. 23. [개발일지 #008] 로그인 구현3 (refreshToken 재발급, AccessToken 블랙리스트 기능) 🎯 오늘의 목표refreshToken 재발급 기능 구현AccessToken 블랙리스트 기능 구현 ⚙️ 진행한 작업refreshToken 재발급 기능 구현AccessToken 블랙리스트 기능 구현🛠️ 개발내용📌 RefreshToken 재발급 기능AccessToken 재발급 요청이 들어왔을 때, 기존 RefreshToken도 새로 발급해서 교체 하는 것을 뜻함. ✅ 현재 로그인/로그아웃 흐름로그인 시 → AccessToken + RefreshToken 발급AccessToken: 요청 시마다 헤더에 포함해 인증RefreshToken: Redis에 저장 (서버), 클라이언트에도 전달AccessToken 만료 시 → /token/refresh 호출로 재발급로그아웃 시 → Redis에서 RefreshToke.. 2025. 4. 23. [개발일지 #007] 로그인 구현2 (refreshToken 도입) / 로그아웃 🎯 오늘의 목표로그인 구현로그아웃 구현⚙️ 진행한 작업refreshToken 도입🛠️ 개발내용📌 리프레시 토큰을 도입하는 이유현재 AccessToken만 있고, RefreshToken은 없는 상태.AccessToken의 만료시간이 짧다면, 리프레시 토큰 없이 사용자는 자주 로그인을 다시 해야 하는 상황. ✅ AccessToken vs RefreshToken 항목Access TokenRefresh Token목적API 요청 인증 (매 요청마다 사용)AccessToken이 만료되었을 때 새로운 AccessToken을 발급받기 위해 사용유효 기간짧음 (보통 15분~1시간)김 (보통 7일~2주)저장 위치클라이언트 (localStorage, sessionStorage, 또는 쿠키)보안상 서버(DB/Redis.. 2025. 4. 23. [개발일지 #006] 회원가입 전, 이메일 인증 구현 🎯 오늘의 목표회원가입 전, 이메일 인증 구현⚙️ 진행한 작업회원가입 전, 이메일 인증 구현🛠️ 개발내용📌 전체 흐름[1] 이메일 입력 후 인증 요청 (POST /api/email/verify-request) └ Redis에 토큰 저장 + 이메일 발송[2] 인증 메일 링크 클릭 (GET /api/email/verify?token=xxx) └ Redis에서 토큰 확인 → 인증 완료 → DB 저장 or 업데이트[3] 회원가입 요청 (POST /api/users) └ DB에 이메일 인증된 사용자만 가입 허용 📌 Redis, Mail 관련 의존성 추가 (build.gradle)implementation 'org.springframework.boot:spring-boot-starter.. 2025. 4. 22. 이전 1 2 3 4 5 6 다음 728x90 320x100