code: def get_user_token(self, scope, code=None):
          
  
          user_token = self.__get_user_token(scope)
  
          if user_token:
              return user_token
  
          if self.__cache is not None:
              token = self.__cache.get(self.__user_token_cache_key())
              if token:
                  return token
  
          if self.__redirect_uri is None or code is None:
              raise MxitAPIParameterException()
  
          self.__user_token = None
  
          payload = {
              'grant_type': 'authorization_code',
              'code': code,
              'redirect_uri': self.__redirect_uri
          }
  
          url = settings.AUTH_ENDPOINT + '/token'
          r = post(url, data=payload, auth=HTTPBasicAuth(self.__client_id, self.__client_secret), verify=self.__verify_cert)
          if r.status_code == 200:
              data = r.json()
              self.__set_user_token(scope, data[u'access_token'])
              if self.__cache is not None:
                  self.__cache.set(self.__user_token_cache_key(scope), str(data[u'access_token']),
                                   data[u'expires_in'] - 300)
  
          user_token = self.__get_user_token(scope)
  
          if not user_token:
              raise MxitAPIException("Failed to retrieve user token for '%s' scope" % scope)
  
          return user_token
docs: Gets the auth token from a user's response