簡體   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