class_docstr: Abstract implementation of OAuth 1.0 and 1.0a.
  
  See `TwitterMixin` below for an example implementation.
  
  Class attributes:
  
  * ``_OAUTH_AUTHORIZE_URL``: The service's OAuth authorization url.
  * ``_OAUTH_ACCESS_TOKEN_URL``: The service's OAuth access token url.
  * ``_OAUTH_VERSION``: May be either "1.0" or "1.0a".
  * ``_OAUTH_NO_CALLBACKS``: Set this to True if the service requires
    advance registration of callbacks.
  
  Subclasses must also override the `_oauth_get_user_future` and
  `_oauth_consumer_token` methods.
class_docstr_tok: ["Abstract","implementation","of","OAuth","1.0","and","1.0a",".","See","`","TwitterMixin","`","below","for","an","example","implementation",".","Class","attributes",":","*","``","_OAUTH_AUTHORIZE_URL","``",":","The","service","'s","OAuth","authorization","url",".","*","``","_OAUTH_ACCESS_TOKEN_URL","``",":","The","service","'s","OAuth","access","token","url",".","*","``","_OAUTH_VERSION","``",":","May","be","either","``","1.0","''","or","``","1.0a","''",".","*","``","_OAUTH_NO_CALLBACKS","``",":","Set","this","to","True","if","the","service","requires","advance","registration","of","callbacks",".","Subclasses","must","also","override","the","`","_oauth_get_user_future","`","and","`","_oauth_consumer_token","`","methods","."]
docstr: Subclasses must override this to return their OAuth consumer keys.
  
  The return value should be a `dict` with keys ``key`` and ``secret``.
docstr_tok: ["Subclasses","must","override","this","to","return","their","OAuth","consumer","keys",".","The","return","value","should","be","a","`","dict","`","with","keys","``","key","``","and","``","secret","``","."]
code: def _oauth_consumer_token(self) -> Dict[str, Any]:
      """Subclasses must override this to return their OAuth consumer keys.
  
      The return value should be a `dict` with keys ``key`` and ``secret``.
      """
      raise NotImplementedError()
  
imports: import base64
  import binascii
  import hashlib
  import hmac
  import time
  import urllib.parse
  import uuid
  import warnings
  from tornado import httpclient
  from tornado import escape
  from tornado.httputil import url_concat
  from tornado.util import unicode_type
  from tornado.web import RequestHandler
  from typing import List, Any, Dict, cast, Iterable, Union, Optional
label_desc: Use image node_id 4 for calling the OAuthMixin obj's underlying member method code with example usage: obj._oauth_consumer_token() without return types