>  기사  >  백엔드 개발  >  리디렉션 후 Golang과 Gin의 CORS 오류

리디렉션 후 Golang과 Gin의 CORS 오류

WBOY
WBOY앞으로
2024-02-09 20:21:33402검색

重定向后 Golang 与 Gin 中的 CORS 错误

PHP 편집자인 Xiaoxin이 리디렉션 후 Golang 및 Gin의 CORS 오류를 소개합니다. CORS(Cross-Origin Resource Sharing)는 서로 다른 도메인 간의 안전한 데이터 전송을 위한 메커니즘이지만 CORS 오류 발생은 Golang 및 Gin 프레임워크를 사용할 때 일반적인 문제입니다. 이 문서에서는 개발자가 이 문제를 더 잘 이해하고 처리하는 데 도움이 되도록 CORS 오류의 원인과 해결 방법을 자세히 설명합니다. 초보자이든 숙련된 개발자이든 이 문서는 유용한 지침과 솔루션을 제공할 수 있습니다. Golang과 Gin의 CORS 오류를 함께 살펴보겠습니다!

질문 내용

go와 gin으로 작성된 웹 서버에서 google oauth2를 구현하려고 합니다. /google/sign-in 및 /google/callback이라는 두 개의 새로운 엔드포인트를 추가했습니다. 첫 번째는 요청을 수신하고 Google 인증 URL로 리디렉션되고 두 번째는 사용자가 유효한 Google 계정을 선택하고 토큰을 확인한 후 내부 인증을 위한 jwt를 생성한 후에 호출됩니다.

모든 것이 괜찮지만 첫 번째 API 경로를 호출하면 cors 오류가 발생하기 때문에 그렇지 않습니다.

으아아아

내 골랭 코드는 다음과 같습니다.

으아아아

인증 컨트롤러

으아아아

googleauthconfig에서 콜백 URL은 http://localhost:3000/google/callback이며 이는 Google Cloud Oauth 자격 증명에 추가됩니다.

콜백 요청에 access-control-allow-origin이 누락된 것을 알고 있는데 해당 헤더를 어떻게 추가하나요?

Solution

질문 내용에 따르면 http://localhost:4200页面,并向http://localhost:3000/google/sign-in发送AJAX请求,该请求将重定向到https://accounts.google.com/o/oauth2/auth。这行不通。您需要将页面重定向到 https://accounts.google.com/o/oauth2/auth방문중이십니다.

이 문제를 해결하는 데는 두 가지 옵션이 있습니다.

  • AJAX 요청을 양식 요청으로 바꾸도록 클라이언트 코드를 수정하세요(<form action="http://localhost:3000/google/sign-in" method="POST"> 元素)。在这种情况下,RedirectToGoogleAuthPage 中的 c.JSON를 사용하는 것은 다른 것으로 바꿔야 합니다.

  • 또는 수정RedirectToGoogleAuthPage 以使用包含要重定向到的目标 URL 的 JSON 内容进行响应,并修改客户端代码以将页面重定向到目标 URL(使用 window.location = targetURL).

두 번째 옵션을 선택하면 코드 변경이 덜 필요한 것 같습니다.

위 내용은 리디렉션 후 Golang과 Gin의 CORS 오류의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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