code: def parse_authorization_code_response(uri, state=None):
      
      if not is_secure_transport(uri):
          raise InsecureTransportError()
  
      query = urlparse.urlparse(uri).query
      params = dict(urlparse.parse_qsl(query))
  
      if not 'code' in params:
          raise MissingCodeError("Missing code parameter in response.")
  
      if state and params.get('state', None) != state:
          raise MismatchingStateError()
  
      return params
docs: Parse authorization grant response URI into a dict.
  
      If the resource owner grants the access request, the authorization
      server issues an authorization code and delivers it to the client by
      adding the following parameters to the query component of the
      redirection URI using the ``application/x-www-form-urlencoded`` format:
  
      **code**
              REQUIRED.  The authorization code generated by the
              authorization server.  The authorization code MUST expire
              shortly after it is issued to mitigate the risk of leaks.  A
              maximum authorization code lifetime of 10 minutes is
              RECOMMENDED.  The client MUST NOT use the authorization code
              more than once.  If an authorization code is used more than
              once, the authorization server MUST deny the request and SHOULD
              revoke (when possible) all tokens previously issued based on
              that authorization code.  The authorization code is bound to
              the client identifier and redirection URI.
  
      **state**
              REQUIRED if the "state" parameter was present in the client
              authorization request.  The exact value received from the
              client.
  
      :param uri: The full redirect URL back to the client.
      :param state: The state parameter from the authorization request.
  
      For example, the authorization server redirects the user-agent by
      sending the following HTTP response:
  
      .. code-block:: http
  
          HTTP/1.1 302 Found
          Location: https://client.example.com/cb?code=SplxlOBeZQQYbYS6WxSbIA
                  &state=xyz