>  기사  >  백엔드 개발  >  고랑진: 제목은 이미 써놨어요. 상태 코드 301을 200으로 재정의하고 싶습니다.

고랑진: 제목은 이미 써놨어요. 상태 코드 301을 200으로 재정의하고 싶습니다.

PHPz
PHPz앞으로
2024-02-06 10:18:08469검색

Golang Gin:标题已经写好了。想要用 200 覆盖状态代码 301

질문 내용

저는 제어판을 개발 중이고 그것을 만들어 줄 사람을 고용했습니다. 그들은 모두 도망갔고 나는 파스타를 청소하는 일만 남았습니다.

내가 해야 할 일은:

  • 로그인 페이지를 당겨보세요
  • 로그인 정보 확인 및 폼 작성
  • 게시 성공 후 대시보드 페이지로 리디렉션됩니다

간단한 로그인 절차만 거치면 됩니다. 문제는 로그인이 성공하면 콘솔이 다음과 같이 리디렉션 루프에 들어간다는 것입니다.

으아악

지금은 나이 많은 개발자를 대신해서 golang과 gin을 배우는 중이거나 처음 접하는 중이라 제겐 아무것도 아닙니다...

내가 아는 바로는 main()라우트, 미들웨어 구성, 템플릿 로드 후 엔진을 실행하는 것입니다.

main.go

으아악

접속하면 / 时,我会被重定向到 /login에 로그인 양식이 나타납니다.

유효한 자격 증명을 사용하여 양식을 제출하면 /dashboard로 리디렉션됩니다. 로그인 성공 후 리디렉션이 올바른지 모르겠습니다. 원래 개발자가 그렇게 했고 잘 작동합니다.

routes.go

으아악

login.go

으아악

그러면 /dashboard페이지가 로드됩니다.

dashboard.go

으아악

(dashboard.go코드에서 데이터를 대시보드로 가져오는 코드는 길이도 길고 필요없다고 생각해서 생략했습니다.)

  • dashboard.go의 모든 데이터 쿼리를 주석 처리하고 간단한 "안녕하세요" 응답을 추가했지만 여전히 리디렉션처럼 보입니다. 따라서 저는 이 gofile이 데이터를 추출하는 방식에 아무런 문제가 없다는 것을 알고 있습니다.
  • 주사위 없이 http.statusok와 같은 다른 http 응답 코드를 사용해 보았습니다.
  • dashboard.go에서 실제로 세션 데이터가 기록되고 저장되는 것을 확인했습니다. 대시보드 가져오기 핸들러를 로드할 때 세션 데이터를 출력할 수 있습니다. 그래서 세션이 잘 진행되고 있다는 것을 알고 있습니다.
  • 핸들러 작성 방식을 변경했습니다. 이전에는 다음과 같이 인코딩되었습니다.
으아악

다음에 어디로 가야 할지 전혀 모르겠어요. 감사해요!


정답


도와주신 모든 분들께 감사드립니다. 이전 개발자에게 연락하여 문제를 파악하는 데 도움을 주었습니다.

그는 자신의 코드에서 어떤 이유로 세션을 다시 확인하는 미들웨어 기능을 만들었습니다. 해당 코드는 세션 쿠키에서 존재하지 않는 이전 변수를 확인하고 있습니다. 그래서 로그인 화면으로 돌아갔습니다.

그래서 내가 한 일은 어쨌든 login.go에서 처리하고 있었기 때문에 해당 미들웨어를 제거하는 것이었습니다.

위 내용은 고랑진: 제목은 이미 써놨어요. 상태 코드 301을 200으로 재정의하고 싶습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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