title: Setting up openId in tornado python
body: <p>Hey all... I have been reading the tornado doc and came across open id mixin so I thought to myself "Wicked no horrid password system on my side" then I looked into how to implement it, the only example I came across was this</p>
  
  <pre><code>class GoogleHandler(tornado.web.RequestHandler, tornado.auth.GoogleMixin):
      @tornado.web.asynchronous
      def get(self):
          if self.get_argument("openid.mode", None):
              self.get_authenticated_user(self.async_callback(self._on_auth))
              return
          self.authenticate_redirect()
  
      def _on_auth(self, user):
          if not user:
              raise tornado.web.HTTPError(500, "Google auth failed")
  </code></pre>
  
  <p>Which doesn't show the bigger picture, like routes, appsettings etc etc
              # Save the user with, e.g., set_secure_cookie()</p>
  
  <p>So my question is. How does this fit into the bigger picture that is a tornado site.</p>