问题描述
我有一个运行 uWSGI 的 Flask 服务器。 Flask 会话在服务器端实现,会话将保存一个唯一的用户 ID 和用户名字典。我可以登录,但是当它到达主页时,它将再次重定向到登录页面,因为会话对象为空。
这些烧瓶端点是使用 axios 从 reactjs 调用的。 React 与 nginx 一起服务
这里是登录的代码(validate_user是一个函数,返回true是用户有效)
@app.route('/login',methods=['POST'])
def login():
user_details = request.get_json()
username = user_details['user']
password = user_details['password']
if validate_user(username,password) is True:
user_id = str(uuid.uuid4())
user_response = {
"username": current_user,"id": str(user_id)}
session['user'] = user_response
response = app.response_class(response=json.dumps(user_response),status=200,mimetype='application/json')
这是主页的代码
@app.route('/container/csi',methods=['GET'])
@login_required
def get_csi_data():
print("Get CSI data")
@login_required 是一个包装函数
def login_required(function_to_protect):
@wraps(function_to_protect)
def wrapper(*args,**kwargs):
user_id = session.get('user')
print("user id:",user_id)
if user_id is None:
user_response = {"error": "Not authorized,login to continue"}
response = app.response_class(response=json.dumps(user_response),status=401,mimetype='application/json')
return response
else:
return function_to_protect(*args,**kwargs)
return wrapper
我还使用了许多不同答案中所述的静态 secret_key
app.secret_key = "1234"
这里是 uWSGi 配置文件 (server.ini)
[uwsgi]
module = wsgi:app
master = true
processes = 5
socket = server.sock
https = 0.0.0.0:5000,/path/to/cert,/path/to/key
chmod-socket = 660
vacuum = true
die-on-term = true
启动服务器如下
uwsgi --ini server.ini
观察:
我首先看到“OPTIONS”请求和主页的“GET”请求。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)