繁体   English   中英

烧瓶:无需身份验证即可登录

[英]Flask: Login without authentication

我有一个Flask应用程序,需要登录后才能使用,但不需要身份验证。 用户名和密码字段需要发送到已经创建的函数,该函数将用户登录到netscaler。 此函数返回会话密钥。 另外,如果有多个人正在访问Web应用程序,那么如何使他们的每个会话分开? 我不想注册任何用户,因为这不是必需的。

由于您已经具有登录功能,并且只需保留会话密钥以区分用户,因此请使用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价值为真,并配置permanent_session_lifetime要多久你想登录是有效的

app.config['PERMANENT_SESSION_LIFETIME'] = # ...

session['key'] = # ...
session.permanent = True

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM