我在Tornado.web中是全新的。
我只是在龙卷风的python中写一个web服务。他被桌面应用程序使用。我想要求应用程序在经过身份验证后才进行通信。
我搜索了一些例子,但找不到适用于我的案例。
答案 0 :(得分:1)
您只需添加@tornado.web.authenticated
装饰器,并在您的应用中指定login url
,在其中指定debug=True
settings = dict({
"template_path": os.path.join(os.path.dirname(__file__),"templates"),
"static_path": os.path.join(os.path.dirname(__file__),"static"),
"cookie_secret": "make it harde to guess ;) ",
"xsrf_cookies": True,
"debug": False,
"gzip": True,
"login_url": "/#login",
"site_url":"http://localhost:8000",
})
最后,您从控制cookie存在的类继承您的类:
class BaseHandler(tornado.web.RequestHandler):
@tornado.web.removeslash
def get_current_user(self):
return self.get_secure_cookie("name_of_your_cookie")
示例:
class Test(BaseHandler):
@tornado.web.authenticated
def post(self):
user = self.get_secure_cookie("name_of_your_cookie")
# the rest of the code...
现在会发生什么,每当有人试图进入使用Test
的链接时,应用程序会查看cookie
是否存在,否则,会重定向到login_url