2016-12-12 32 views
2

好吧,我可以成功登錄用戶。並註銷。然後強制用戶重新登錄。服務器重新啓動後會話仍然進行身份驗證?

什麼似乎不起作用的是,當用戶進行身份驗證,執行導致服務器重新啓動的操作,然後服務器恢復時,用戶仍然通過身份驗證。

這是在硬件設備上,所以沒有持久性存儲。不知何故,python燒瓶登錄信息一旦發送,就會「信任」cookie?我覺得我並不完全瞭解Flask登錄正在做什麼......

我沒有真正的用戶存儲。只有一個用戶。下面是一些代碼塊我有,如果它可以幫助任何人:

@login_manager.user_loader 
def load_user(id): 
    return User(id) 

class User(FlaskLogin.UserMixin): 
    def __init__(self, id): 
     self.id = id 

和登錄方法本身(一些東西,當然刪除):

def login(): 
    sysPassword = supersecretmethodherethatreturnspasswordasastring() 

    if flask.request.method == "POST": 
     password = flask.request.form['password'] 
     username = flask.request.form['username'] 

     if password == sysPassword and username == 'static-user-name': 
      user = User(username) 
      FlaskLogin.login_user(user) 
      return flask.redirect("/dashboard") 
     else: 
      return flask.render_template("login.html", error="Incorrect password. Please enter the correct password.", product=productid, products=defaults.products) 

    return flask.render_template("login.html", error=False, product=productid, products=defaults.products) 

回答

1

瓶,登錄結束Flask's sessions的抽象。

Flask的會話是cookies。 Cookie往往會滯留在瀏覽器中。您可以自由配置會話的持續時間等等。但只要您向Flask-Login提供有效的會話,您將保持登錄狀態。

該文檔涵蓋此here

+0

有趣。我猜我需要在設備重啓後使'load_user'失效。需要在每次登錄時存儲某種唯一密鑰.. HRMM。 – Charlie

相關問題