]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Convert auth demo to coroutines.
authorBen Darnell <ben@bendarnell.com>
Sat, 16 Mar 2013 23:12:20 +0000 (19:12 -0400)
committerBen Darnell <ben@bendarnell.com>
Sat, 16 Mar 2013 23:12:20 +0000 (19:12 -0400)
demos/auth/authdemo.py

index 9585ff1a2d802bb1dc5ad2b4496350da6a1ce927..78db9740bed012531a6bb69dfa46a7877f2ac401 100755 (executable)
@@ -18,10 +18,10 @@ import tornado.auth
 import tornado.escape
 import tornado.httpserver
 import tornado.ioloop
-import tornado.options
 import tornado.web
 
-from tornado.options import define, options
+from tornado import gen
+from tornado.options import define, options, parse_command_line
 
 define("port", default=8888, help="run on the given port", type=int)
 
@@ -57,18 +57,16 @@ class MainHandler(BaseHandler):
 
 class AuthHandler(BaseHandler, tornado.auth.GoogleMixin):
     @tornado.web.asynchronous
+    @gen.coroutine
     def get(self):
         if self.get_argument("openid.mode", None):
-            self.get_authenticated_user(self.async_callback(self._on_auth))
+            user = yield self.get_authenticated_user()
+            self.set_secure_cookie("authdemo_user",
+                                   tornado.escape.json_encode(user))
+            self.redirect("/")
             return
         self.authenticate_redirect()
 
-    def _on_auth(self, user):
-        if not user:
-            raise tornado.web.HTTPError(500, "Google auth failed")
-        self.set_secure_cookie("authdemo_user", tornado.escape.json_encode(user))
-        self.redirect("/")
-
 
 class LogoutHandler(BaseHandler):
     def get(self):
@@ -82,7 +80,7 @@ class LogoutHandler(BaseHandler):
                    'Click <a href="/">here</a> to log back in.')
 
 def main():
-    tornado.options.parse_command_line()
+    parse_command_line()
     http_server = tornado.httpserver.HTTPServer(Application())
     http_server.listen(options.port)
     tornado.ioloop.IOLoop.instance().start()