18
18
import tornado .escape
19
19
import tornado .httpserver
20
20
import tornado .ioloop
21
- import tornado .options
22
21
import tornado .web
23
22
24
- from tornado .options import define , options
23
+ from tornado import gen
24
+ from tornado .options import define , options , parse_command_line
25
25
26
26
define ("port" , default = 8888 , help = "run on the given port" , type = int )
27
27
@@ -57,18 +57,16 @@ def get(self):
57
57
58
58
class AuthHandler (BaseHandler , tornado .auth .GoogleMixin ):
59
59
@tornado .web .asynchronous
60
+ @gen .coroutine
60
61
def get (self ):
61
62
if self .get_argument ("openid.mode" , None ):
62
- self .get_authenticated_user (self .async_callback (self ._on_auth ))
63
+ user = yield self .get_authenticated_user ()
64
+ self .set_secure_cookie ("authdemo_user" ,
65
+ tornado .escape .json_encode (user ))
66
+ self .redirect ("/" )
63
67
return
64
68
self .authenticate_redirect ()
65
69
66
- def _on_auth (self , user ):
67
- if not user :
68
- raise tornado .web .HTTPError (500 , "Google auth failed" )
69
- self .set_secure_cookie ("authdemo_user" , tornado .escape .json_encode (user ))
70
- self .redirect ("/" )
71
-
72
70
73
71
class LogoutHandler (BaseHandler ):
74
72
def get (self ):
@@ -82,7 +80,7 @@ def get(self):
82
80
'Click <a href="/">here</a> to log back in.' )
83
81
84
82
def main ():
85
- tornado . options . parse_command_line ()
83
+ parse_command_line ()
86
84
http_server = tornado .httpserver .HTTPServer (Application ())
87
85
http_server .listen (options .port )
88
86
tornado .ioloop .IOLoop .instance ().start ()
0 commit comments