首页 > 后端开发 > Python教程 > 为什么我的 FastAPI Cookie 没有出现在我的 React 前端中?

为什么我的 FastAPI Cookie 没有出现在我的 React 前端中?

DDD
发布: 2024-12-05 04:30:10
原创
229 人浏览过

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

FastAPI:在 React 前端处理 Cookie

概述

FastAPI 为后端开发启用 Cookie 处理。但是,在 React 前端中发送和接收 cookie 可能需要特定配置才能确保正常功能。

为什么 Cookie 没有返回到 React 前端

如果您的 FastAPI 后端没有将 cookie 返回到您的 React 应用程序,有几个因素可能会导致此问题:

1.无效的 Axios 请求:

  • 通过将 withCredentials 属性设置为 true,确保您的 Axios 请求正确发送凭据。
  • 验证 Axios 请求 URL 是否与您的域匹配FastAPI 后端。使用 localhost 和 127.0.0.1 作为不同的域可能会破坏 cookie 创建。

2. CORS 限制:

  • 由于跨域请求,您需要在 FastAPI 应用程序中显式配置 CORS 设置。
  • 使用 CORSMiddleware 和allow_credentials= 指定允许的来源True 则启用跨域 cookie用法。

3. FastAPI 中的 Cookie 设置:

  • 确保使用 response.set_cookie() 方法在 FastAPI 路由中正确设置 Cookie。
  • 验证 httponly 参数是否设置为True 可防止客户端访问 cookie。

4. SameSite 属性:

  • cookie 的 SameSite 属性会影响其在不同域中的可用性。
  • 将其设置为 SameSite=Lax 或 SameSite=Strict 以控制 cookie 的可访问性和防止跨站攻击。

FastAPI 示例Cookie 设置:

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 可能会限制通信类型并阻止发送 cookie 和授权标头。
  • 确保前端域明确包含在允许的来源中,并且将allow_credentials=True 设置为正确的cookie 处理。

以上是为什么我的 FastAPI Cookie 没有出现在我的 React 前端中?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板