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

WBOY
풀어 주다: 2024-02-11 18:03:08
앞으로
1195명이 탐색했습니다.

带 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으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿
회사 소개 부인 성명 Sitemap
PHP 중국어 웹사이트:공공복지 온라인 PHP 교육,PHP 학습자의 빠른 성장을 도와주세요!