Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用nodejs axios/fetch时,Flask会话不会持久化数据_Node.js_Express_Flask_Axios - Fatal编程技术网

Node.js 使用nodejs axios/fetch时,Flask会话不会持久化数据

Node.js 使用nodejs axios/fetch时,Flask会话不会持久化数据,node.js,express,flask,axios,Node.js,Express,Flask,Axios,我有一个server.js用于从flask服务器获取数据。我在flask应用程序中使用会话来保存用户登录信息。如果我用的是邮递员,一切都很完美。但是,使用server.js获取数据将导致每个请求的flask会话重置 例如,如果我登录并且登录()中打印的会话是。在调用user_info()之后,打印的会话立即变为空,打印内容为。似乎它会为每个请求创建一个新会话。有人能帮我解决这个问题吗?谢谢你的帮助 Server.js: const express = require('express'); co

我有一个server.js用于从flask服务器获取数据。我在flask应用程序中使用会话来保存用户登录信息。如果我用的是邮递员,一切都很完美。但是,使用server.js获取数据将导致每个请求的flask会话重置

例如,如果我登录并且登录()中打印的会话是
。在调用user_info()之后,打印的会话立即变为空,打印内容为
。似乎它会为每个请求创建一个新会话。有人能帮我解决这个问题吗?谢谢你的帮助

Server.js:

const express = require('express');
const path = require('path');
const cors = require('cors');
const fetch = require('node-fetch');
const axios = require('axios');

const app = express();

const proxy = 'http://0.0.0.0:5000';
app.use(cors());
app.use(express.json());
app.use(express.static(path.join(__dirname, '.', 'build')));

app.get('/user', function(req,res) {    
    axios.get(proxy + '/user',{ withCredentials: true })
    .then((response) => res.json(response.data));   
});

app.post('/login', function(req,res) {
    let body = req.body;
    axios.post(proxy + '/login', body, { withCredentials: true })
    .then((response) => res.json(response.data));   
});

app.get('/*', (req, res) => {
    res.sendFile(path.join(__dirname, '.', 'build', 'index.html'));
});

app.listen(8080);
app.py:

from flask import Flask, request, json, session, jsonify
from api import driver
from flask_cors import CORS


def create_app(db_url="init"):
    app = Flask(__name__)
    app.secret_key = "asfsdfsdfdsfsa"
    app.SESSION_TYPE = 'filesystem'

    driver = driver()
    CORS(app)

    @app.route('/login', methods=['POST'])
    def sign_in():
        request_data = json.loads(request.data)
        ret = driver.login(request_data)

        if ret["valid"]:
            session["user"] = request_data["username"]

        ret = jsonify(ret)
        return ret

    @app.route('/user', methods=['GET'])
    def user_info():
        ret = {"valid": False}
        if "user" in session:
            ret = driver.get_user_info(session["user"])
        ret = jsonify(ret)
        return ret

    return app
迄今为止的尝试:

  • 我试过使用flask_cors,但仍然不起作用
  • 我试着用axios和fetch来做前端。使用fetch时,我添加了“凭据”:“include”。还是不行
  • 试图添加@cross\u登录名。不起作用
  • 试图设置supports\u credentials=True,不起作用