我有一个Flask应用程序,我需要登录,但我不需要身份验证。用户名和密码字段需要发送到已创建的函数,该函数将用户登录到netscaler。此函数返回会话密钥。此外,如果有多个人访问Web应用程序,我如何将每个会话分开?我不想注册任何用户,因为不需要。
答案 0 :(得分:0)
由于您已经拥有登录功能,并且只需保持会话密钥以区分用户,因此请使用session
代理:
session['key'] = your_login_function(request.form.get('username'), request.form.get('password'))
要检查用户是否已登录,请在session
:
if 'key' in session:
# there's a logged-in user
app.before_request
是一个很好的地方,因为它在每个请求之前被调用:
@app.before_request
def _check_user_login():
if not request.path.startswith('/static/') and \
not request.path in ['/urls', '/that', '/do', '/not', '/require', '/login']:
if not 'key' in session:
return redirect(url_for('your_login_page'))
要限制用户在该密钥下保持登录的时间,请将会话的permanent
值设置为True,并将permanent_session_lifetime
配置为您希望登录有效的时长
app.config['PERMANENT_SESSION_LIFETIME'] = # ...
session['key'] = # ...
session.permanent = True