使用Tornado.web和身份验证的WebService。你有例子吗?

时间:2013-05-02 18:06:47

标签: python authentication tornado

我在Tornado.web中是全新的。

我只是在龙卷风的python中写一个web服务。他被桌面应用程序使用。我想要求应用程序在经过身份验证后才进行通信。

我搜索了一些例子,但找不到适用于我的案例。

1 个答案:

答案 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