Python 烧瓶会话值不会保存在不同的请求上
我到处都在寻找解决办法,但解决不了我的问题。 我目前正在AWS中运行带有uWSGI和NGINX的Flask应用程序 我的烧瓶应用程序正在本地运行Python 烧瓶会话值不会保存在不同的请求上,python,amazon-web-services,nginx,flask,uwsgi,Python,Amazon Web Services,Nginx,Flask,Uwsgi,我到处都在寻找解决办法,但解决不了我的问题。 我目前正在AWS中运行带有uWSGI和NGINX的Flask应用程序 我的烧瓶应用程序正在本地运行127.0.0.1:5000。 我尝试添加了不同问题中提到的密钥,但没有成功 以下是我的一些代码: app.py from flask import Flask, request, redirect, url_for, session, abort from flask_session import Session app = Flask(__name
127.0.0.1:5000
。
我尝试添加了不同问题中提到的密钥
,但没有成功
以下是我的一些代码:
app.py
from flask import Flask, request, redirect, url_for, session, abort
from flask_session import Session
app = Flask(__name__)
app.config["SESSION_TYPE"] = 'filesystem'
app.config["SESSION_FILE_DIR"] = '/var/www/test/session'
Session(app)
@app.route('/auth/login', methods=['POST'], strict_slashes=False)
def login():
# did some validations here
session.permanent = True
session['is_logged_in'] = True
return redirect(url_for('home'))
@app.route('/auth/home', methods=['GET'], strict_slashes=False)
def home():
if session.get('is_logged_in') == None:
return redirect('/') # will return to default page
return render_template('home.html')
if __name__ == '__main__':
app.run(host='0.0.0.0')
我总是被重定向到默认页面,因为会话
没有存储“is\u logged\u in”值。但是它确实存储了{permanent:True}
,我相信这是从session.permanent=True
行中得到的
nginx.conf中的配置:
location /auth {
rewrite ^/(.+) $1 break;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_redirect off:
proxy_pass http://127.0.0.1:5000/$1$is_args$args;
}
如果有帮助,我的uWSGI正在socket=120.0.0.1:5000中运行,我正在使用protocol=http
当我在浏览器中检查应用程序cookie时,它注册了一个会话cookie。如果会话['is logged\u in']==False,请尝试使用
并在开始时将会话记录为false。在会话(应用程序)
之后的顶部添加此会话['is\u logged\u in']=False
编辑:
检查会话中是否存在“登录”。
登录时,请执行以下操作:
if 'logged_in' in session:
#User logged in
在注销时,请执行此操作
session.pop('logged_in')
经过一些枯燥的研究,我发现我只需要将plugin=python36
包含在我的uwsgi.ini中,它来自uwsgi-plugin-python36
(rpm)。您好,谢谢您的回复。这给了我一个运行时错误:在请求上下文之外工作。我只能与活动HTTP请求中的会话进行交互。请检查你好,再次感谢。我的问题是,当我转到另一个请求时,在会话
中设置的值没有保存是否已登录\u
在会话中从未出现您可以使用我的方法来尝试登录用户。我正在尝试使会话正常工作。由于会话中从不存在is\u logged\u
,如果会话中“is\u logged\u in:
将永远不会通过。。