flask-jwt-extended:确保仅在“/刷新”上发送刷新cookie,但也可以在带有``/api/refresh`refresh`

问题描述 投票:0回答:0

后端:

烧瓶在端口5000上运行。
  • 额叶:使用node.js代理(flask run
    )。
    cookie配置:
  • http-proxy-middleware
  • 这样可以确保在向JWT_REFRESH_COOKIE_PATH = "/refresh" 提出请求时发送刷新cookie。 cookie设置为httponly。
  • 问题:
  • 当我直接向烧瓶(通过Postman或Swagger Document自动生成
    /refresh)向烧瓶发送请求时,一切正常。 当我从ReactApp
    http://localhost:5000/refresh
  • )发送请求时,它会通过代理转发到烧瓶。但是,由于浏览器将请求路径视为
flask-restx

,因此它确实会发送刷新cookie(因为将其http://localhost:3000/api/refresh设置为

/api/refresh
    )。
  • NODE.JS代理(setupproxy.js):
    
    
    Path
  • 我想实现的目标:
    我希望将刷新cookie发送给
    ,以便
    
    直接要求烧瓶(/refresh
    )。
    
    从React App(
    const { createProxyMiddleware } = require('http-proxy-middleware');
    
    module.exports = function(app) {
      app.use(
        '/api',
        createProxyMiddleware({
          target: 'http://localhost:5000',
          changeOrigin: true,
        })
      );
    };
    
    )提出请求时,该请求是通过node.js代理转发到(
  • /refresh
)。

我尝试了什么 基于请求URL

的dynamanthandandynys设置cookie路径,但是由于该请求总是以
http://localhost:5000/refresh
的烧结,因此无法区分代理请求。

更改为http://localhost:3000/api/refresh,但是之后,仅通过自动生成的Swagger文档起作用和请求不起作用。

改变

http://localhost:5000/refresh

to

/refresh
  • 但是此后,即使访问React App(
    JWT_REFRESH_COOKIE_PATH
    )也被重定向到
  • "/api/refresh"
  • 问题:
我如何配置

module.exports = function(app) { app.use( '/api', createProxyMiddleware({ target: 'http://localhost:5000', changeOrigin: true, }) ); };

和/或
    module.exports = function(app) { app.use( '/', createProxyMiddleware({ target: 'http://localhost:5000', changeOrigin: true, }) ); };
  • ,以便在http://localhost:3000上发送刷新cookie,同时还允许当从直接后端访问和通过React Frontend frontend proxy(
    http://localhost:5000
    )?
  • 任何建议或建议将不胜感激!
    	
    o3-mini建议我将
    flask-jwt-extended
  • 添加到
  • http-proxy-middleware
  • 中,这解决了我的问题:
/refresh

reactjs flask http-proxy-middleware flask-jwt-extended cookie-path
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.