강의

멘토링

커뮤니티

Cộng đồng Hỏi & Đáp của Inflearn

Hình ảnh hồ sơ của blackjune
blackjune

câu hỏi đã được viết

Lớp học thành thạo Kotlin thông qua thực hành dự án máy chủ ngân hàng

Triển khai API Controller

강의 19] 질문입니다.

Đã giải quyết

Viết

·

57

0

안녕하세요! 강의 너무 잘 보고 있습니다!

강의를 보는 중 궁금한 부분이 생겨 질문드려봅니다!


@GetMapping("/callback")
fun callback(
...
return ResponseEntity.status(HttpStatus.FOUND)
            .location(URI.create("https://localhost:3000")).build()

콜백 함수에 return을 이렇게 작성하셨는데요!

만약에 서블릿객체를 이용해서 쿠키를 담지 않고 아래와 같이 하는 방법은 어떻게 보시는지요...??

 

같은 동작을 할 것으로 예상은되는데 보편적인 스타일이 궁금합니다 ㅋ.ㅋ;

```
return ResponseEntity .status(HttpStatus.FOUND) .header("Set-Cookie", "authToken=$token; HttpOnly; Path=/; Max-Age=${60 60 24 * 7}") .location(URI.create("http://localhost:3000")) .build()
```

kotlinmysqlmongodbkafkaredis

Câu trả lời 2

0

Hong님의 프로필 이미지
Hong
Người chia sẻ kiến thức

안녕하세요 치즈초코우유님 질문 주셔서 감사합니다.

보내주신 당연하게도 개발자간에 스타일의 차이는 있겠고 저도 새당 코드를 구현할 떄 크게 뭔가 고려한 스타일은 아니였다보니 중요하게 생각하지 않았는데,

 

보내주신 코드 스타일이 좀 더 유지관리하기에는 좋은 포인트인거 같습니다. 직접적으로 전달을 해준다는것이 좀 더 유용한 형태는 맞는거 같아요.

 

저보다 더 뛰어나시네요 ㅎㅎ 질문주셔서 감사합니다!

blackjune님의 프로필 이미지
blackjune
Người đặt câu hỏi

헛; 아닙니다!! ㅠㅜ 강의 끝까지 들어보겠습니다! 답변 감사합니다!

0

안녕하세요, 인프런 AI 인턴입니다. 치즈초코우유님.

코틀린으로 웹 애플리케이션을 개발할 때, 쿠키를 활용하여 사용자 인증 정보를 관리하는 방법에 대해 질문해 주셨군요! 주로 Spring Boot 환경에서 @GetMappingResponseEntity를 사용하여 HTTP 응답을 설정하는 방식에 대해 고민하고 계시는 것 같습니다.

기존 방식 vs 대안

  1. 기존 방식: ResponseEntity.status(HttpStatus.FOUND).location(URI.create("https://localhost:3000")).build() 형태로 작성된 코드는 주로 리다이렉트를 위해 사용되는 방식입니다. 이는 단순히 사용자 브라우저를 특정 URL로 리다이렉트할 때 유용하며, 응답 내 쿠키 설정을 포함하지 않습니다.

  2. 대안 방식: 제안하신 대안에서는 ResponseEntityHttpOnly 쿠키를 추가하여 사용자 인증 정보를 전달하는 방법을 소개하고 있습니다. 이 방식은 브라우저에 리다이렉트될 동시에 쿠키에 사용자 정보를 저장할 수 있어, 서버 간 세션 유지나 인증 정보를 위해 매우 유용합니다.

보편적인 스타일

  • 보편적으로, 사용자 인증 정보는 보안상 HttpOnly 쿠키에 저장하는 것이 권장됩니다. 이는 JavaScript를 통해 클라이언트 측에서 접근할 수 없기 때문에 XSS 공격을 대비하는 좋은 방법입니다.
  • ResponseEntity를 활용하여 쿠키 설정을 명시하는 것은 명확한 방식으로 정보를 브라우저에 전달할 수 있게 해줍니다.

결론

제안하신 방식과 같이 Set-Cookie를 HTTP 응답 헤더로 설정하여 쿠키를 설정하는 방법은 매우 실용적이며, 특히 웹 보안 관점에서 좋은 접근법입니다. 이를 통해 클라이언트와 서버 간 상태 유지가 보다 안전하고 효율적으로 이루어질 수 있습니다.

아래의 기존 답변 링크를 참고하시면 더욱 구체적인 예제와 보편적인 구현 방법에 대한 논의가 이루어져 있어 많은 도움이 되실 것입니다:

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

Hình ảnh hồ sơ của blackjune
blackjune

câu hỏi đã được viết

Đặt câu hỏi