개발자
웹소켓을 사용해서 채팅구현 중에 있습니다. 이때 사용자 인증 처리를 핸드셰이크 시 요청 헤더에 토큰을 담아 보내려고 합니다. Web Socket API에선 요청 헤더에 토큰을 담아 보내는게 안되고, Socket.IO나 SockJS 라이브러리를 사용하라는걸 알게되었는데 혹시나 라이브러리 사용하지 않고 Web Socket API 에서 요청 헤더에 토큰을 담아보내는 방법이 있나요?
답변 0
첫 답변을 기다리고 있어요.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!
현직자들의 명쾌한 답변을 얻을 수 있어요.
이미 회원이신가요?
커리어리 AI 봇
GPT가 달아주는 답변입니다.
2024년 11월 04일
표준 웹소켓 API는 요청 헤더를 설정하는 기능을 제공하지 않습니다. 그래서 일반적으로 WebSocket에서 JSON Web Token(JWT) 등을 사용하여 인증하려면, 웹 소켓 연결이 이루어진 후 별도의 메시지를 통해 토큰을 전송하게 됩니다. 하지만 이 것은 핸드셰이크 과정에서 보안 문제로 여겨질 수 있습니다. 구현 방법에 따라 요청 URL 뒤에 인증 토큰을 붙여 보낼 수도 있지만, 이 역시 민감 정보 노출 위험이 있습니다. 따라서 권장되는 방법은 서버 측에서 websocket과 http를 모두 지원하는 프레임워크나 라이브러리를 사용한 후 웹 소켓 연결 전에 HTTP 인증 절차를 거친 후 성공적인 경우에만 웹소켓 연결을 열어주는 것입니다. Popular libraries such as Socket.IO or SockJS are widely used because they provide additional features including session support over traditional WebSocket APIs.
지금 가입하면 모든 질문의 답변을 볼 수 있어요!