-
카테고리
-
세부 분야
백엔드
-
해결 여부
해결됨
안녕하세요 정수원강사님 session 관련 질문드립니다!
21.11.08 17:39 작성 조회수 193
2
안녕하세요 강사님 좋은강의 항상 감사합니다.
굉장히 초보적인 질문일 수 있음에 죄송스럽습니다.
다름이 아니라 form login을 진행하게 되면 서버의 session에 사용자가 저장이 되고 이것을 이용해서 권한까지 검사하는 것으로 알고있는데요,
그런데 ajax로 api/messages로 접근을 할 때 미리 로그인되었다는, 다시말해 클라이언트와 서버가 서로 jsessionId를 전송하지 않는 것처럼 보이는데 POST로 로그인 후 GET api/messages를 할 때 서버는 이용자를 어떻게 구분하나요?
답변 미리 감사드립니다 ^_^
답변을 작성해보세요.
7
정수원
지식공유자2021.11.09
네
ajax 로 통신을 할 때에도 request 객체의 header 에는 JSESSIONID 를 포함해서 서버로 전송됩니다.
브라우저가 하는 역할입니다.
보통 세션쿠키라고도 하는데요
최초 서버에서 발급한 세션쿠키를 Response 객체에 담아서 클라이언트로 보내게 되고 클라이언트가 서버로 요청할 때는 서버로 부터 받은 세션쿠기, 즉 JSESSIONID를 Request 객체에 담아서 보내는 과정이 Form 방식의 인증 혹은 Ajax 방식의 인증 모두 적용된다고 보시면 됩니다.
다만 요즘은 Ajax 방식의 Rest 통신을 할 때는 세션을 사용하지 않고 토큰 방식의 인증 및 권한을 사용해서 요청과 응답을 주고 받는 식으로 많이 구현을 합니다
JWT (Json Web Token) 으로 인증하는 방식입니다.
이 때는 아예 세션을 사용하지 않기 때문에 서버가 사용자가 누군지 알 수 없고 토큰에 포함 된 정보만을 해석해서 인증을 처리하게 됩니다.
참고하시면 됩니다.
0
yumin3
2022.09.07
그럼 Intellij에서 제공하는 http request 툴이 로그인에 성공하면 계속 JSESSIONID 쿠키를 들고 있고, 다른 요청을 하더라도 함께 쿠키를 보낸다고 보면 되는건가요? postman같은 툴을 사용하더라도 동일하게 적용이 되려면 api/message 요청을 보낼때는 쿠키를 복사해서 사용해야 하는거죠?
답변 2