묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 시큐리티 OAuth2
로그아웃 시, 토큰 만료 처리
로그아웃 시, 토큰 만료 처리로그아웃 할 때, 토큰 무효화를 확실히 하기 위해 oauth2_authorization 테이블에 있는 액세스 토큰과 리프레시 토큰을 만료 시키고 싶은데 맞는 방법인지 모르겠습니다.로그아웃url 뒤에 쿼리로 액세스 토큰, 리프레시 토큰 받아와 커스텀한 logoutHandler에서 OAuth2AuthorizationService 호출하여 토큰 유효기간을 업데이트 하여 무효화하긴 했는데 위 방법처럼 DB의 oauth2_authorization 테이블을 직접 업데이트쳐서 토큰을 무효화 해도 되는것인지, Spring boot 내에서 왜 로그아웃할 때 토큰 유효기간을 만료시키지 않는 것인지 궁금합니다. 로그인 시, 세션 인증 정보 저장그리고 로그인할 때 OAuth2AuthorizationServerConfigurer내부에서 세션에 인증 정보(유저명, 인증여부 등)담고 있는데 인증서버를 여러 대 구성할 경우, 문제가 없을지? redis를 사용해야할지 궁금 합니다.oauth2는 토큰발급하여 인가하는데 왜 세션에 인증정보를 저장하여 사용하나요?
-
미해결MERN STACK 커뮤니티 : 시작부터 배포까지 알려주는 React
로그인 로그아웃 관련 새로고침 이슈
한가지 더 해결못한 이슈가 있습니다.새로고침 후 /직전에 구동 잘 되는 걸 확인했던 author 정보의displayName을 읽어올수없다는 TypeError가 뜨네요,그리고 로그인 후 리덕스에서 읽어오는 과정에서 뭔가문제가 있는지 자꾸 react_devtools_backend.js:3973 Warning: Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your application. To fix, cancel all subscriptions and asynchronous tasks in a useEffect cleanup function. at Login (http://localhost:3000/static/js/bundle.js:924:76)이 오류가 뜨네요, 무시해도 되는 것인지 아니면 이번 문제와 연관이 있는지 모르겠습니다. 헷갈리는건 리덕스를 포스트 리스트 페이지에 연동하기 전까지는 무리 없이 잘 됐다가 갑자기 페이지를 새로고침 하니까로그인 관련 이슈가 생겼다는 점입니다.!!제가서버를 구동시킨 상태에서 디테일 컴포넌트에 추가했던 author 정보의 displayName 받아오는 코드를 다시 지웠더니 문제가 사라졌다가 지웠던 코드를 똑같이 다시 쓰니 디테일 페이지가 문제 없이 작성자 정보를 보여주었습니다. <h3>writer:{postInfo.author.displayName}</h3> 그런데 새로고침을 누르자 마자 위의 타입에러가 뜨면서 디테일페이지가 로딩이 1초간 됐다가 흰 화면이 되며 콘솔창에 아래 오류가 뜨는 것입니다. 콘솔창에 문제를 추적하기 위해 제가 아래 디테일 코드에 콘솔로그를 몇군데에 찍어봤는데 로그인 문제와 연관이있는지 서버와 연결은 되지만 위 첨부 콘솔창과 같이 빈 데이터가 넘어오는것 같습니다. 혹시나 해서 다시 "/" 으로 돌아가 로그아웃을 강제로 하고재로그인을 해서 리스트가 있는 페이지로 들어와봤습니다.그랬더니 author 정보는 잘 받아오는데 다음과 같은 콘솔창 오류가 추가되었습니다.일단 저 오류를 무시하고 리스트에 있는 목록을 하나 클릭해 들어가니 역시나 빈 배열이 받아지는 오류가 반복됩니다.분명 새로고침과 관련한 문제인 것 같은데....이상한건 새로고침을 하면 자동 로그아웃이 되어버리는건가 하고 의심해서 "/" 으로 돌아와보면토큰이 넘어와 로그인 상태가 유지중이었습니다.그래도 의심되는건 바로 로그인상태가 표시되는게 아니라 조금 뜸들이다가 로그인이 되었음이 표시되긴 합니다. 판다선생님이라면 어떤 부분을 살펴보실 것 같은가요어떤 부분을 살펴보면 좋을지 알려주시면 확인 후 조치해보고 코드를 첨부해보겠습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
로그인 / 로그아웃, 권한 관련 질문입니다.
선생님 안녕하세요. 선생님께 도움 정말 많이 받고있습니다. 최근 홈페이지를 구성해 보며 로그인/로그아웃, 권한 관련하여 궁금한 점이 생겼습니다. 로그인을 한 후 어떠한 권한을 가지고 있는 사용자던 간에 로그아웃이 출력되게 하고싶습니다. 검색해보니 spring security 관련 authenticationManager, jwt 등 다양한 방식이 있는걸로 파악했는데요. 혹시 실무에서 어떤 방식을 사용하여 로그인, 로그아웃, 권한 등의 처리를 하시는지가 궁금합니다. 공부 방향을 잡아보고 싶어서 질문드립니다. 감사합니다 !
-
해결됨Spring Boot JWT Tutorial
Refresh Token, Logout
안녕하세요. 좋은 강의 덕분에 JWT를 이용하여 로그인 기능을 구현하였습니다. 그 과정에서 토큰 만료기한을 짧게 설정하고 해당 사용자의 이벤트가 있을때마다 토큰 만료기한을 연장하여 사용자 관리를 하고 싶습니다. 그래서 JWT 인증 정보를 SecurityContext에 저장하기 전에 Claims에 만료 기한을 설정한 후 저장했는데 수정되지 않아서요. 제가 잘못된 방법인건지 혹은 다른 좋은 방법이 있을까요? 추가적으로 로그아웃 시 위의 방법이 됐을 경우 만료기한을 현재시점으로 하여 만료시키면 될까요? 답변 부탁드립니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
로그아웃 부분좀 부탁드립니다.
새로고침해도 로그인정보 뜨는거는 됐는데 로그아웃 버튼 누르고 새로고침하면 계속 로딩중으로 표시됩니다. 확인해 보니 서버쪽에서 세션 종료했는데도 브라우저에서 쿠키가 남아있는거 같은데 await context.store.sagaTask.toPromise()부분을 주석달면 새로고침하면 바로 되더라고요 이부분 어떻게 처리해야될까요? export const getServerSideProps = wrapper.getServerSideProps(async (context) => { console.log('getServerSideProps start'); console.log(context.req.headers); const cookie = context.req ? context.req.headers.cookie : ''; axios.defaults.headers.Cookie = ''; if (context.req && cookie) { axios.defaults.headers.Cookie = cookie; } context.store.dispatch({ type: LOAD_MY_INFO_REQUEST, }); context.store.dispatch(END); console.log('getServerSideProps end'); await context.store.sagaTask.toPromise(); });