2011-11-20 33 views
1

我有一些我希望人們登錄的網頁。我正在使用Facebook連接進行登錄,並在Tornado服務器上運行該網站。爲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=FACEBOOK_APP_ID) 
     self.render("basic/home.html", **context) 

凡BaseHandler是一種改性處理程序,包括返回任何用戶對象或無,如果沒有一個登錄的方法self.current_user

。我想知道什麼最好的方法是將其重寫爲一個裝飾器,我可以將其放置在每個我想要鎖定的處理器上?

回答

2

聽起來像是你有沒有發現認證裝飾

@tornado.web.authenticated 
def get(self): 
    ... 

如果沒有CURRENT_USER它會重定向到login_url應用程序設置。

+0

啊,謝謝koblas!奇蹟般有效。 – rd108

相關問題