class_docstr: Twitter OAuth authentication.
  
  To authenticate with Twitter, register your application with
  Twitter at http://twitter.com/apps. Then copy your Consumer Key
  and Consumer Secret to the application
  `~tornado.web.Application.settings` ``twitter_consumer_key`` and
  ``twitter_consumer_secret``. Use this mixin on the handler for the
  URL you registered as your application's callback URL.
  
  When your application is set up, you can use this mixin like this
  to authenticate the user with Twitter and get access to their stream:
  
  .. testcode::
  
      class TwitterLoginHandler(tornado.web.RequestHandler,
                                tornado.auth.TwitterMixin):
          @tornado.gen.coroutine
          def get(self):
              if self.get_argument("oauth_token", None):
                  user = yield self.get_authenticated_user()
                  # Save the user using e.g. set_secure_cookie()
              else:
                  yield self.authorize_redirect()
  
  .. testoutput::
     :hide:
  
  The user object returned by `~OAuthMixin.get_authenticated_user`
  includes the attributes ``username``, ``name``, ``access_token``,
  and all of the custom Twitter user attributes described at
  https://dev.twitter.com/docs/api/1.1/get/users/show
class_docstr_tok: ["Twitter","OAuth","authentication",".","To","authenticate","with","Twitter",",","register","your","application","with","Twitter","at","http",":","\/\/twitter.com\/apps",".","Then","copy","your","Consumer","Key","and","Consumer","Secret","to","the","application","`","~tornado.web.Application.settings","`","``","twitter_consumer_key","``","and","``","twitter_consumer_secret","``",".","Use","this","mixin","on","the","handler","for","the","URL","you","registered","as","your","application","'s","callback","URL",".","When","your","application","is","set","up",",","you","can","use","this","mixin","like","this","to","authenticate","the","user","with","Twitter","and","get","access","to","their","stream",":","..","testcode",":",":","class","TwitterLoginHandler","(","tornado.web.RequestHandler",",","tornado.auth.TwitterMixin",")",":","@","tornado.gen.coroutine","def","get","(","self",")",":","if","self.get_argument","(","``","oauth_token","''",",","None",")",":","user","=","yield","self.get_authenticated_user","(",")","#","Save","the","user","using","e.g",".","set_secure_cookie","(",")","else",":","yield","self.authorize_redirect","(",")","..","testoutput",":",":",":","hide",":","The","user","object","returned","by","`","~OAuthMixin.get_authenticated_user","`","includes","the","attributes","``","username","``",",","``","name","``",",","``","access_token","``",",","and","all","of","the","custom","Twitter","user","attributes","described","at","https",":","\/\/dev.twitter.com\/docs\/api\/1.1\/get\/users\/show"]
code: def _oauth_get_user_future(self, access_token):
      user = yield self.twitter_request(
          "/account/verify_credentials", access_token=access_token
      )
      if user:
          user["username"] = user["screen_name"]
      raise gen.Return(user)
  
imports: from __future__ import absolute_import, division, print_function
  import base64
  import binascii
  import functools
  import hashlib
  import hmac
  import time
  import uuid
  from tornado.concurrent import TracebackFuture, return_future, chain_future
  from tornado import gen
  from tornado import httpclient
  from tornado import escape
  from tornado.httputil import url_concat
  from tornado.log import gen_log
  from tornado.stack_context import ExceptionStackContext
  from tornado.util import unicode_type, ArgReplacer, PY3
label_desc: Use image node_id 5 for calling the TwitterMixin obj's underlying member method code with example usage: obj._oauth_get_user_future(access_token) without return types