]> git.ipfire.org Git - thirdparty/tornado.git/commitdiff
Remove authentication from chat demo.
authorBen Darnell <ben@bendarnell.com>
Sat, 28 Mar 2015 16:34:14 +0000 (12:34 -0400)
committerBen Darnell <ben@bendarnell.com>
Sat, 28 Mar 2015 16:34:14 +0000 (12:34 -0400)
Google OpenID authentication is shutting down soon and its replacement
requires app registration, so it's better to make this demo like the
websocket one to show off long-polling concepts without auth-related
complexity.

demos/chat/chatdemo.py
demos/chat/templates/index.html
demos/chat/templates/message.html

index 984e1c72749b52baf89646f61375a3b69a65024e..bd4d7b085d8c667b097f2c48a7d8b8f5b156f6f3 100755 (executable)
@@ -15,7 +15,6 @@
 # under the License.
 
 import logging
-import tornado.auth
 import tornado.escape
 import tornado.ioloop
 import tornado.web
@@ -73,25 +72,15 @@ class MessageBuffer(object):
 global_message_buffer = MessageBuffer()
 
 
-class BaseHandler(tornado.web.RequestHandler):
-    def get_current_user(self):
-        user_json = self.get_secure_cookie("chatdemo_user")
-        if not user_json: return None
-        return tornado.escape.json_decode(user_json)
-
-
-class MainHandler(BaseHandler):
-    @tornado.web.authenticated
+class MainHandler(tornado.web.RequestHandler):
     def get(self):
         self.render("index.html", messages=global_message_buffer.cache)
 
 
-class MessageNewHandler(BaseHandler):
-    @tornado.web.authenticated
+class MessageNewHandler(tornado.web.RequestHandler):
     def post(self):
         message = {
             "id": str(uuid.uuid4()),
-            "from": self.current_user["first_name"],
             "body": self.get_argument("body"),
         }
         # to_basestring is necessary for Python 3's json encoder,
@@ -105,8 +94,7 @@ class MessageNewHandler(BaseHandler):
         global_message_buffer.new_messages([message])
 
 
-class MessageUpdatesHandler(BaseHandler):
-    @tornado.web.authenticated
+class MessageUpdatesHandler(tornado.web.RequestHandler):
     @gen.coroutine
     def post(self):
         cursor = self.get_argument("cursor", None)
@@ -122,36 +110,15 @@ class MessageUpdatesHandler(BaseHandler):
         global_message_buffer.cancel_wait(self.future)
 
 
-class AuthLoginHandler(BaseHandler, tornado.auth.GoogleMixin):
-    @gen.coroutine
-    def get(self):
-        if self.get_argument("openid.mode", None):
-            user = yield self.get_authenticated_user()
-            self.set_secure_cookie("chatdemo_user",
-                                   tornado.escape.json_encode(user))
-            self.redirect("/")
-            return
-        self.authenticate_redirect(ax_attrs=["name"])
-
-
-class AuthLogoutHandler(BaseHandler):
-    def get(self):
-        self.clear_cookie("chatdemo_user")
-        self.write("You are now logged out")
-
-
 def main():
     parse_command_line()
     app = tornado.web.Application(
         [
             (r"/", MainHandler),
-            (r"/auth/login", AuthLoginHandler),
-            (r"/auth/logout", AuthLogoutHandler),
             (r"/a/message/new", MessageNewHandler),
             (r"/a/message/updates", MessageUpdatesHandler),
             ],
         cookie_secret="__TODO:_GENERATE_YOUR_OWN_RANDOM_VALUE_HERE__",
-        login_url="/auth/login",
         template_path=os.path.join(os.path.dirname(__file__), "templates"),
         static_path=os.path.join(os.path.dirname(__file__), "static"),
         xsrf_cookies=True,
index 70549797b136ca52f10598e454ef0bdd2ba09342..a8708b7c9bb55a8cffbe5fb1efcbcbd59d7c2609 100644 (file)
@@ -6,10 +6,6 @@
     <link rel="stylesheet" href="{{ static_url("chat.css") }}" type="text/css"/>
   </head>
   <body>
-    <div id="nav">
-      <b>{{ current_user["name"] }}</b> -
-      <a href="/auth/logout">{{ _("Sign out") }}</a>
-    </div>
     <div id="body">
       <div id="inbox">
         {% for message in messages %}
index c48a634eeb6c2fcd289815b45bcf8255b604616b..aa817fdfa8b1fd37431cfb6bcb905ce440a34ace 100644 (file)
@@ -1 +1 @@
-<div class="message" id="m{{ message["id"] }}"><b>{{ message["from"] }}: </b>{% module linkify(message["body"]) %}</div>
+<div class="message" id="m{{ message["id"] }}">{% module linkify(message["body"]) %}</div>