Python 什么';在Tornado中,为某些处理程序编写登录所需的装饰程序是一种很好的方法吗?
我有一些网页,我想让人们登录查看。我正在使用Facebook connect登录,并在Tornado服务器上运行该网站 现在,我这样做:Python 什么';在Tornado中,为某些处理程序编写登录所需的装饰程序是一种很好的方法吗?,python,decorator,tornado,Python,Decorator,Tornado,我有一些网页,我想让人们登录查看。我正在使用Facebook connect登录,并在Tornado服务器上运行该网站 现在,我这样做: class Home(BaseHandler): def get(self): if not self.current_user: self.redirect("/") else: context = dict(current_user=self.current_user, facebook_app_id=FAC
class Home(BaseHandler):
def get(self):
if not self.current_user:
self.redirect("/")
else:
context = dict(current_user=self.current_user, facebook_app_id=FACEBOOK_APP_ID)
self.render("basic/home.html", **context)
其中BaseHandler是一个修改过的处理程序,它包含一个方法self.current\u user,如果没有人登录,则返回user对象或None
我想知道最好的方法是将它重写为一个decorator,我可以将它放在我想要锁定的每个处理程序上?听起来你好像还没有找到经过身份验证的decorator
@tornado.web.authenticated
def get(self):
...
如果您没有当前用户,它会将您重定向到登录\u url
应用程序设置