발단 Https 적용은 프론트 기능 구현까지 모두 완료 후에 백엔드-프론트엔드 동시에 진행하려고 했던 작업이다. 하지만 백엔드가 먼저 해야만 했다. 왜냐하면 ... 더보기 https://un-lazy-midnight.tistory.com/171 [해결] 쿠키가 브라우저에 저장 되지 않는 Chrome SameSite 이슈 (Set-Cookie 동작 안 함) 바야흐로 7월 말.. 백엔드 리팩토링과 테스트 코드를 작성하고 있던 나에게 성큼 다가온 이슈... 브라우저에서 쿠키가 저장되지 않음 . . . 프론트엔드와 개발을 구분해서 하고있기 때문에 API 구 un-lazy-midnight.tistory.com 프론트에서 Refresh Token을 담은 쿠키가 브라우저에서 자동으로 저장되지 않는 이슈가 발생했고 위..
💻dev/🕹️Project
지난 글 참고: https://un-lazy-midnight.tistory.com/159 대동덕지도 | Spring Boot에서 Spring Security + JWT 로그인을 구현하자! (Access Token, Refresh Token 발급) Spring Boot에서 로그인을 구현하자! 처음 백엔드 팀원과 역할을 나눌 때, 도메인 별로 분배하는 게 좋다고 판단이 되었다. 두 명이기 때문에 사이즈가 큰 "회원"과 "이벤트"를 하나씩 맡고 나머지 un-lazy-midnight.tistory.com https://un-lazy-midnight.tistory.com/160 대동덕지도 | Spring Boot에서 Spring Security + JWT로 로그아웃을 구현하자! (feat. Redis) JWT 적..
결론부터 말하자면... Access Token의 단점을 보완하려고! Access Token의 Stateless 특성 JWT Access Token은 상태 정보를 서버에 저장하지 않고 클라이언트에게 전달되어 검증되는데, 이로 인해 탈취당한 경우를 대비하기 어렵습니다. 따라서 Access Token의 만료 기간을 짧게 설정하여 보안을 강화하는데 문제가 발생할 수 있습니다. 그.러.나 Access Token의 만료 기간을 짧게 설정하면 보안은 높아질 수 있지만, 사용자 편의성은 감소합니다. 사용자가 로그인 후 자주 Access Token을 재발급받아야 하는 번거로움이 발생할 수 있습니다. 그래서 Refresh Token을 사용합니다. Refresh Token은 Access Token이 만료되었을 때만 사용되며..
JWT 적용한 로그인은 구현 했는데 말입니다 ... 로그아웃은 어떻게 하지? JWT를 적용한 로그인 기능은 Access Token(AT), Refresh Token(RT)를 이용하여 구현해냈다. 참고: https://un-lazy-midnight.tistory.com/159 대동덕지도 | Spring Boot에서 Spring Security + JWT 로그인을 구현하자! (Access Token, Refresh Token 발급) Spring Boot에서 로그인을 구현하자! 처음 백엔드 팀원과 역할을 나눌 때, 도메인 별로 분배하는 게 좋다고 판단이 되었다. 두 명이기 때문에 사이즈가 큰 "회원"과 "이벤트"를 하나씩 맡고 나머지 un-lazy-midnight.tistory.com 그런데 로그아웃은.. 어..
비밀번호 찾기를 어떻게 구현할 것인가? 팀원들과 비밀번호 찾기에 대해서 열렬히 의견을 주고 받았었다. 여러 방법이 있겠지만 우리의 후보에 올랐던 방법들은 다음과 같다. 1. 단순하게 임시 비밀번호를 발급하는 방법 2. 비밀번호 재설정 링크를 생성하여 이메일로 보내는 방법 3. 이메일로 인증번호를 보낸 후 인증번호가 일치하면 비밀번호를 재설정하는 방법 1번은 보안상 좋지 않고, 2번은 관련 자료가 Node.js 뿐이었고 처음에는 잘 와닿지 않아서 최종적으로는 3번을 택하게 되었다. 이메일을 보내기 위한 프로젝트용 계정을 생성했고, Gmail을 이용했다. 그런데 방법을 정했다고 해서 일사천리로 해결되는 게 아니었다. 처음에 내가 제안한 방법은 아래와 같다. 1. 프론트->백 이메일 주소 2. 백-> 프론트 ..
Spring Boot에서 로그인을 구현하자! 처음 백엔드 팀원과 역할을 나눌 때, 도메인 별로 분배하는 게 좋다고 판단이 되었다. 두 명이기 때문에 사이즈가 큰 "회원"과 "이벤트"를 하나씩 맡고 나머지 기능들을 나누게 되었다. 그렇게 나는 회원을 맡으며 인증 파트를 맡게 되었다. 먼저 로그인을 어떤 방식으로 구현할 것인지 결정해야만 했다. 세션 방식으로 간단히 구현할 수 있었지만 이왕이면 JWT를 적용하고 싶었다. 그렇게 Spring Security와 JWT를 적용하기 위한 여정이 시작되었다. JWT(Json Web Token)는 무엇이고 왜 선택했는가? JWT는 사용자 인증과 식별을 위한 토큰 기반 인증 방식이다. 이 토큰은 사용자의 권한 정보나 서비스 이용을 위한 정보를 포함하며, JWT를 사용하면..
프로젝트 시작 계기 개발자라면 깃허브 README.md, 일명 리드미를 최소 한 번은 마주하게 된다. 특히 프로필 리드미는 그냥 두자니 허전해서 꾸며놓으면 기분이 좋다. 티스토리 블로그를 운영하다 보니 깃허브 리드미에 내 최신 블로그 포스팅을 게시하고 싶어졌다. 토이프로젝트로 바로 실행에 옮겼다. 기간 2023/03/31 (1일) 기술 스택 Python feedparser Github Actions 전체 소스코드 github repository: https://github.com/busymidnight/latest-blog-posts GitHub - busymidnight/latest-blog-posts: Get latest blog posts from my blog and update README.md..