本篇文章给大家带来的内容是关于Python中Tornado下用户身份认证的实现方法,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。
在tornado的requesthandler类中有一个current_user属性用于保存当前请求的用户名。requesthandler.get_current_user的默认值是none,在get()、post()等处理函数中可以随时读取该属性以获取当前的用户名。requesthandler.current_user是一个只读属性,所以如果想要设置该属性值,需要重载requesthandler.get_current_user()函数以设置该属性值。
实例:使用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'
'