웹 개발에서 인증은 필수 기능이며, 쿠키 기반 인증이 일반적인 방식입니다. 효율적이고 간결한 프로그래밍 언어인 Golang은 강력한 웹 개발 기능을 갖추고 있습니다. 이 기사에서는 Gorilla 툴킷을 사용하여 Golang에서 쿠키 인증으로 Websocket 기능을 구현하여 애플리케이션을 더욱 안전하고 안정적으로 만드는 방법을 소개합니다. Golang 초보자이든 숙련된 개발자이든 이 문서는 빠르게 시작하는 데 도움이 될 수 있습니다. 한 번 보자!
고릴라 웹소켓을 사용하여 차트를 실행하려고 합니다. 인증 미들웨어는 쿠키와 JWT 토큰을 통해 작동합니다. http를 통한 모든 엔드포인트는 작동하지만 websocket은 작동하지 않습니다. 쿠키 인증이 포함된 고릴라 웹소켓과 같은 많은 주제를 읽은 후 내 쿠키가 비어 있고 웹소켓 연결의 컨텍스트도 비어 있음을 발견했습니다. 왜 그런지 이해가 안 되나요? 누구든지 이유를 설명할 수 있나요? p.s.: 해당 핸들러에서 업그레이드를 제거하려고 시도했는데 쿠키와 컨텍스트가 성공적으로 전달되었지만 websocket 프로토콜에 대한 연결을 업그레이드한 후 실패했습니다. 이것은 내 파일입니다: 끝점:
으아악ws_handler
으아악미들웨어:
으아악다른 모든 엔드포인트는 작동합니다. 다른 코드가 필요한 경우 알려주시기 바랍니다. 나는 내 문제가 간단하다고 생각했지만 뭔가를 오해했기 때문에 문제를 더 복잡하게 만들고 싶지 않습니다( 귀하의 도움과 조언에 감사드립니다.
p.s.: 미들웨어를 끄면 모든 것이 예상대로 작동합니다.
업데이트: 유효성 검사 및 생성 기능이 추가되었습니다
으아악jwt 문자열로 쿠키를 추가한 로그인 기능이 추가되었습니다
으아악도움 후 업데이트: 문제는 우편배달부 설정 요청에서 쿠키를 올바르게 지정하지 않았다는 것입니다.
문제를 파악하는 데 도움을 드리고자 합니다. 먼저 관련 부분에만 집중하기 위해 예제를 약간 단순화했습니다. 생략해야 할 부분이 있는 경우 알려주시면 답변을 업데이트하겠습니다. 먼저 로컬 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!