1.pip install pycket
pip install redis
2.config
settings = dict( debug=True, template_path='templates', static_path='static', cookie_secret='secret', pycket={ 'engine': 'redis', 'storage': { 'host': 'localhost', 'port': 6379, 'db_sessions': 2, # 'password': '', 'db_notifications': 11, 'max_connections': 2 ** 31, }, 'cookies': { 'expires_days': 30, 'max_age': 5000 } }, )
3.构建BaseHandler
from pycket.session import SessionMixin class BaseHandler(tornado.web.RequestHandler, SessionMixin): def get_current_user(self): return self.session.get('cookie_name')
4.需要设置一个条件去验证,比如要求用户登录。就在用户登录的handler中设置一个cookie信息
class LoginHandler(BaseHandler): def get(self): username = self.get_argument('username') passwd = self.get_argument('password') if username in db and passwd == db.passwd: self.sesion.set('cookie_name', value) self.write('success login')
5.其他handler需要继承basehandler才能够使用装饰起@tornado.web.authenticated去验证用户是否登录
class NoLoginNoShow(BaseHandler): @tornado.web.authenticated def get(self): self.write('this message is secrect'
6.退出,可以通过self.session.delete('cookie_name')
转载于:https://www.cnblogs.com/tangpg/p/9468724.html