网站首页学无止境PYTHON

python框架Tornado之二Tornado 攻略(10)第三方认证&调试模式和

发布时间:2014-07-25 17:29:46编辑:songlin阅读(813)

    第三方认证

    Tornado 的 auth 模 块实现了现在很多流行站点的用户认证方式,包括 Google/Gmail、Facebook、Twitter、Yahoo 以及 FriendFeed。这个模块可以让用户使用 这些站点的账户来登陆你自己的应用,然后你就可以在授权的条件下访问原站点的一些服 务,比如下载用户的地址薄,在 Twitter 上发推等。

    下面的例子使用了 Google 的账户认证,Google 账户的身份被保存到 cookie 当中,以便 以后的访问使用:

    1. class GoogleHandler(tornado.web.RequestHandler, tornado.auth.GoogleMixin): 
    2.     @tornado.web.asynchronous 
    3.     def get(self): 
    4.         if self.get_argument("openid.mode"None): 
    5.             self.get_authenticated_user(self._on_auth) 
    6.             return
    7.         self.authenticate_redirect() 
    8.  
    9.     def _on_auth(self, user): 
    10.         if not user: 
    11.             self.authenticate_redirect() 
    12.             return
    13.         # Save the user with, e.g., set_secure_cookie()

    请查看 auth 模块的代码文档以了解更多的细节。

    调试模式和自动重载

    如果你将 debug=True 传递给 Application 构 造器,该 app 将以调试模式 运行。在调试模式下,模板将不会被缓存,而这个 app 会监视代码文件的修改, 如果发现修改动作,这个 app 就会被重新加载。在开发过程中,这会大大减少 手动重启服务的次数。然而有些问题(例如 import 时的语法错误)还是会让服务器 下线,目前的 debug 模式还无法避免这些情况。

    调试模式和 HTTPServer 的多进程模式不兼容。在调试模式下,你必须将 HTTPServer.start 的参数设为不大于 1 的数字。

    调试模式下的自动重载功能可以通过独立的模块 tornado.autoreload 调用, 作为测试运行器的一个可选项目,tornado.testing.main 中也有用到它。

本文来源地址:http://sebug.net/paper/books/tornado/