[英]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.