我正在使用Flask-Security來管理用戶,並且我得到的報告顯示用戶已成功登錄成爲自己,但隨機加載頁面時會顯示他們登錄爲完全不同的人。我不確定我要去哪裏錯。這可能發生什麼樣的可能性?用戶似乎以另一個用戶身份登錄
我用UserService來做一些簡單的用戶管理。我在每個請求之前實例化一個用戶服務並傳入current_user。
@app.before_request def load_request_services(): g.user_service = UserService(user_datastore, application_service, email_service, ORGS, current_user)
然後,我從這個方法得到UserService當前用戶:
def current_user_get_info(self): return { 'user': self.current_user.email, 'first_name': self.current_user.first_name, 'last_name': self.current_user.last_name, 'phone_number': self.current_user.phone_number, }
這個當執行該API請求代碼被稱爲:
class CurrentUser(restful.Resource): def get(self): return json_response(g.user_service.current_user_get_info())
你有沒有玩過這個會議? 'session [「userid」]'是Flask-Login/Security查找當前用戶的地方([source](https://github.com/maxcountryman/flask-login/blob/master/flask_login.py#L333-L347) ))。所以從這裏開始可能是值得的,然後按照你創建的代碼來找到你開始注意到奇怪的地方。 – Doobeh 2014-10-31 13:41:01
我不玩弄會議。但是,我所做的一件事是設置remember_me = True,當我調用login_user並且從不強制重新登錄時。但是,當我進行更新時,我不時重新部署我的應用程序。這會搞砸會議嗎?如果用戶在重新部署後回到站點,所有會話都會清楚嗎?我會假設應用程序在某處存儲會話信息,並且在重新部署後大概會消失。但是,我注意到重新部署後我不必重新登錄。 – vik 2014-10-31 21:54:19
'app.secret_key'用於簽名會話,因此如果在重新部署之間保持不變,則會話仍然有效。 – Doobeh 2014-10-31 23:33:52