摘要:上一篇文章第二章实战演练开发网站第七节安全机制下一篇文章第二章实战演练开发网站第九节防止跨站攻击在的类中有一个属性用于保存当前请求的用户名。实例使用属性及方法来实现用户身份控制。该地址被用于装饰器在发现用户尚未验证时重定向到一个。
上一篇文章: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" "