>  기사  >  백엔드 개발  >  쿠키 인증이 포함된 Golang Websocket(Gorilla)

쿠키 인증이 포함된 Golang Websocket(Gorilla)

WBOY
WBOY앞으로
2024-02-11 18:03:081260검색

带 cookie 身份验证的 Golang Websocket (Gorilla)

웹 개발에서 인증은 필수 기능이며, 쿠키 기반 인증이 일반적인 방식입니다. 효율적이고 간결한 프로그래밍 언어인 Golang은 강력한 웹 개발 기능을 갖추고 있습니다. 이 기사에서는 Gorilla 툴킷을 사용하여 Golang에서 쿠키 인증으로 Websocket 기능을 구현하여 애플리케이션을 더욱 안전하고 안정적으로 만드는 방법을 소개합니다. Golang 초보자이든 숙련된 개발자이든 이 문서는 빠르게 시작하는 데 도움이 될 수 있습니다. 한 번 보자!

질문 내용

고릴라 웹소켓을 사용하여 차트를 실행하려고 합니다. 인증 미들웨어는 쿠키와 JWT 토큰을 통해 작동합니다. http를 통한 모든 엔드포인트는 작동하지만 websocket은 작동하지 않습니다. 쿠키 인증이 포함된 고릴라 웹소켓과 같은 많은 주제를 읽은 후 내 쿠키가 비어 있고 웹소켓 연결의 컨텍스트도 비어 있음을 발견했습니다. 왜 그런지 이해가 안 되나요? 누구든지 이유를 설명할 수 있나요? p.s.: 해당 핸들러에서 업그레이드를 제거하려고 시도했는데 쿠키와 컨텍스트가 성공적으로 전달되었지만 websocket 프로토콜에 대한 연결을 업그레이드한 후 실패했습니다. 이것은 내 파일입니다: 끝점:

으아악

ws_handler

으아악

미들웨어:

으아악

다른 모든 엔드포인트는 작동합니다. 다른 코드가 필요한 경우 알려주시기 바랍니다. 나는 내 문제가 간단하다고 생각했지만 뭔가를 오해했기 때문에 문제를 더 복잡하게 만들고 싶지 않습니다( 귀하의 도움과 조언에 감사드립니다.

p.s.: 미들웨어를 끄면 모든 것이 예상대로 작동합니다.

업데이트: 유효성 검사 및 생성 기능이 추가되었습니다

으아악

jwt 문자열로 쿠키를 추가한 로그인 기능이 추가되었습니다

으아악

도움 후 업데이트: 문제는 우편배달부 설정 요청에서 쿠키를 올바르게 지정하지 않았다는 것입니다.

Solution

문제를 파악하는 데 도움을 드리고자 합니다. 먼저 관련 부분에만 집중하기 위해 예제를 약간 단순화했습니다. 생략해야 할 부분이 있는 경우 알려주시면 답변을 업데이트하겠습니다. 먼저 로컬 auth 包中进行的 jwt 토큰 생성/검증부터 시작하겠습니다.

auth/auth.go 파일

으아악

이제 미들웨어 부분으로 넘어가겠습니다.

middlewares/middlewares.go 파일

으아악

컨텍스트에 맞게 업로드하려면 c.set(key, value) 메소드를 사용해야 합니다. 이제 핸들러를 살펴보겠습니다.

handlers/handlers.go 파일

으아악

handler.service.loginuser() 方法。要正确地从上下文中读取内容,您必须使用 c.mustget(key) 메서드와 같은 누락된 부분은 무엇을 하는지 모르기 때문에 건너뜁니다.

main.go 파일

으아악

설정 로직입니다. 여기서는 언급할 가치가 없습니다.
추가 도움이 필요하시면 알려주세요. 감사합니다!

위 내용은 쿠키 인증이 포함된 Golang Websocket(Gorilla)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
이 기사는 stackoverflow.com에서 복제됩니다. 침해가 있는 경우 admin@php.cn으로 문의하시기 바랍니다. 삭제