code: async def authorize_redirect(
          self,
          callback_uri: str = None,
          extra_params: Dict[str, Any] = None,
          http_client: httpclient.AsyncHTTPClient = None,
      ) -> None:
          
          if callback_uri and getattr(self, "_OAUTH_NO_CALLBACKS", False):
              raise Exception("This service does not support oauth_callback")
          if http_client is None:
              http_client = self.get_auth_http_client()
          assert http_client is not None
          if getattr(self, "_OAUTH_VERSION", "1.0a") == "1.0a":
              response = await http_client.fetch(
                  self._oauth_request_token_url(
                      callback_uri=callback_uri, extra_params=extra_params
                  )
              )
          else:
              response = await http_client.fetch(self._oauth_request_token_url())
          url = self._OAUTH_AUTHORIZE_URL  # type: ignore
          self._on_request_token(url, callback_uri, response)
docs: Redirects the user to obtain OAuth authorization for this service.
  
          The ``callback_uri`` may be omitted if you have previously
          registered a callback URI with the third-party service. For
          some services, you must use a previously-registered callback
          URI and cannot specify a callback via this method.
  
          This method sets a cookie called ``_oauth_request_token`` which is
          subsequently used (and cleared) in `get_authenticated_user` for
          security purposes.
  
          This method is asynchronous and must be called with ``await``
          or ``yield`` (This is different from other ``auth*_redirect``
          methods defined in this module). It calls
          `.RequestHandler.finish` for you so you should not write any
          other response after it returns.
  
          .. versionchanged:: 3.1
             Now returns a `.Future` and takes an optional callback, for
             compatibility with `.gen.coroutine`.
  
          .. versionchanged:: 6.0
  
             The ``callback`` argument was removed. Use the returned
             awaitable object instead.