Apache在重定向到新页面时清除Flask会话

6vl6ewon  于 2023-03-31  发布在  Apache
关注(0)|答案(1)|浏览(109)

我正在运行一个基于Flask应用程序的Web界面,我使用flask中的模块session来保存用户ID和稍后在界面子页面中使用的其他参数。
我在本地遇到了同样的问题,但设置session.modified = True为我解决了这个问题。
现在,Web应用程序在本地工作。但是,一旦我使用Apache服务器将其部署在EC2示例上,当我重定向到第二个页面时,会话将丢失所有it参数,并且我得到500:内部服务器错误。
这是我的Flask应用程序的代码片段:

from flask import Flask, request, render_template, jsonify, session, abort
import os, sys, json
import boto3
import conf.credentials as conf
import secrets

#---- SET UP CONNECTIONS ----#
secret = secrets.token_urlsafe(32) 
app = Flask(__name__, template_folder='templates')
app.secret_key = secret

@app.route('/<qualtrics_data>')
def index(qualtrics_data):
    appliance = request.args.get('appliance')
    ID = request.args.get('ID')
  
    session["appliance"] = appliance
    session["ID"] = ID
  
    session.modified = True

    return render_template("index.html")

当我尝试从会话中检索数据时,会在此处引发错误:

@app.route('/experiment_0')
def experiment_0():
    appliance = session["appliance"]

这是错误日志中的错误消息:
enter image description here
任何建议都可能有帮助-谢谢:))

oprakyz7

oprakyz71#

flask 应用程序的密钥应该是固定的

#secret = secrets.token_urlsafe(32) 
secret = "some fixed string"

这个帮我修好了

相关问题