我目前正在开发一个使用 Flask 作为后端、React 作为前端的项目,我面临的问题是我无法将会话中的值传递到其他端点,即会话被删除所有其他端点的调用,Flask 应用程序使用 cors。
@app.route('/login', methods=['POST'])
def login():
if request.method == 'POST':
email = request.json.get('email')
password = request.json.get('password')
try:
user = auth.sign_in_with_email_and_password(email, password)
session['user'] = user
print(user)
print("&&&&&")
print(session["user"]["localId"])
info = session["user"]
return jsonify({'success': True, 'message': 'Login successful'})
except Exception as e:
return jsonify({'success': False, 'error': str(e)}), 200
return jsonify({'success': False, 'error': 'Method not allowed'}), 405 # Method Not Allowed status code
@app.route('/transfer_style', methods=['GET', 'POST'])
def transfer_style():
if 'user' in session:
return jsonify({'success': False, 'error': 'Invalid data'}), 400
if request.method == 'POST':
print("jofdojfdjjdovjdovjodjvdjnvjjjjjjjjjjjjjj")
"""current_session = session._get_current_object()
print(session["user"]["localId"])
user_id = current_session.get('user')
print(user_id)"""
user_id = session['localId'] #session does not get passed to here
print(user_id) #no data avilable
print(info)
content_file = request.files['content']
style_file = request.files['style']
epochs = int(request.form.get('epochs', 1))
steps_per_epoch = int(request.form.get('steps_per_epoch', 5))
code contiue...
from flask import Flask, jsonify, request, redirect, url_for, session,send_file
import pyrebase
import tensorflow as tf
import numpy as np
import PIL.Image
import os
from flask import Flask
from flask_cors import CORS
#from flask import request
#
# from firebase_admin import auth
app = Flask(__name__)
CORS(app,supports_credentials=True)
app.secret_key = os.urandom(24).hex()
请帮忙
我尝试将值复制到全局变量 - 不起作用 尝试 CORS(app,supports_credentials=True) - 不起作用
想想,您在登录路由中将
localId
设置为session['user']['localId']
,并尝试在transferstyle路由中将其访问为session['localId']