> 백엔드 개발 > 파이썬 튜토리얼 > 내 FastAPI 쿠키가 내 React 프런트엔드에 표시되지 않는 이유는 무엇입니까?

내 FastAPI 쿠키가 내 React 프런트엔드에 표시되지 않는 이유는 무엇입니까?

DDD
풀어 주다: 2024-12-05 04:30:10
원래의
229명이 탐색했습니다.

Why Aren't My FastAPI Cookies Showing Up in My React Frontend?

FastAPI: React 프론트엔드에서 쿠키 처리

개요

FastAPI를 사용하면 백엔드 개발을 위한 쿠키 처리가 가능합니다. 그러나 React 프런트엔드에서 쿠키를 보내고 받으려면 적절한 기능을 보장하기 위해 특정 구성이 필요할 수 있습니다.

쿠키가 React 프런트엔드에 반환되지 않는 이유

FastAPI 백엔드가 React 앱에 쿠키를 반환하지 않는 경우 , 여러 가지 요인이 이 문제에 영향을 줄 수 있습니다:

1. 잘못된 Axios 요청:

  • withCredentials 속성을 true로 설정하여 Axios 요청이 자격 증명을 올바르게 보내고 있는지 확인하세요.
  • Axios 요청 URL이 도메인과 일치하는지 확인하세요. FastAPI 백엔드. localhost와 127.0.0.1을 다른 도메인으로 사용하면 쿠키 생성이 중단될 수 있습니다.

2. CORS 제한 사항:

  • 교차 출처 요청으로 인해 FastAPI 애플리케이션에서 CORS 설정을 명시적으로 구성해야 합니다.
  • allow_credentials=와 함께 CORSMiddleware를 사용하여 허용되는 출처를 지정하세요. 교차 출처 쿠키를 활성화하려면 True입니다. 사용법.

3. FastAPI의 쿠키 설정:

  • response.set_cookie() 메서드를 사용하여 FastAPI 경로에서 쿠키를 올바르게 설정했는지 확인하세요.
  • httponly 매개변수가 다음으로 설정되어 있는지 확인하세요. 클라이언트 측 쿠키 액세스를 방지하려면 True입니다.

4. SameSite 속성:

  • 쿠키의 SameSite 속성은 다양한 도메인의 가용성에 영향을 미칠 수 있습니다.
  • 쿠키 접근성을 제어하려면 SameSite=Lax 또는 SameSite=Strict로 설정하고 사이트 간 공격을 방지하세요.

샘플 FastAPI 쿠키 설정:

from fastapi import FastAPI, Response

app = FastAPI()

@app.get('/')
def main(response: Response):
    response.set_cookie(
        key='token',
        value='some-token-value', 
        httponly=True,
        samesite='Lax'  # or 'Strict'
    ) 
    return {'status': 'success'}
로그인 후 복사

자격 증명이 포함된 샘플 Axios 요청:

await axios.post(url, data, {withCredentials: true}))
로그인 후 복사

중요 참고:

  • 와일드카드(*)를 사용하여 Access-Control-Allow-Origin은 통신 유형을 제한하고 쿠키 및 승인 헤더가 전송되는 것을 방지할 수 있습니다.
  • 프런트엔드 도메인이 허용된 원본에 명시적으로 포함되어 있고 허용되는 원본에 허용_credentials=True가 설정되어 있는지 확인하세요. 쿠키를 처리합니다.

위 내용은 내 FastAPI 쿠키가 내 React 프런트엔드에 표시되지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿