摘要:上一篇文章第二章實戰演練開發網站第七節安全機制下一篇文章第二章實戰演練開發網站第九節防止跨站攻擊在的類中有一個屬性用于保存當前請求的用戶名。實例使用屬性及方法來實現用戶身份控制。該地址被用于裝飾器在發現用戶尚未驗證時重定向到一個。
上一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第七節:安全Cookie機制
下一篇文章:Python:Tornado 第二章:實戰演練:開發Tornado網站:第九節:防止跨站攻擊
在Tornado的RequestHandler類中有一個current_user屬性用于保存當前請求的用戶名。RequestHandler.get_current_user的默認值是None,在get()、post()等處理函數中可以隨時讀取該屬性以獲取當前的用戶名。RequestHandler.current_user是一個只讀屬性,所以如果想要設置該屬性值,需要重載RequestHandler.get_current_user()函數以設置該屬性值。
代碼:
import tornado.web import tornado.ioloop import uuid #UUID 生成庫 dict_sessions={} #保存所有登錄的Session class BaseHandler(tornado.web.RequestHandler): #公共基類 #寫入current_user的函數 def get_current_user(self): session_id=self.get_secure_cookie("session_id") return dict_sessions.get(session_id) class MainHandler(BaseHandler): @tornado.web.authenticated #需要身份認證才能訪問的處理器 def get(self): name=tornado.escape.xhtml_escape(self.current_user) self.write("Hello,"+name) class LoginHandler(BaseHandler): def get(self): #登陸頁面 self.write("<>body" "