design.md 2.7 KB

Interfaces:

OAuthConsumer is a data type that represents the identity of the Consumer via its shared secret with the Service Provider.

OAuthConsumer

  • key : str
  • secret : str

OAuthToken is a data type that represents an End User via either an access or request token

OAuthToken

  • token : str
  • secret : str
  • to_string() -> str
  • (static) from_string() -> OAuthToken

OAuthSignatureMethod is a strategy class that implements a signature method

OAuthSignatureMethod

  • get_name() -> str
  • build_signature (OAuthRequest, OAuthConsumer, OAuthToken) -> str

OAuthRequest represents the request and can be seriali

OAuthRequest:

  • OAuthRequest(str http_method, str http_url, [dict parameters]) -> constructor
  • set_parameter(str parameter, str value) -> void
    • example parameters: oauth_consumer_key, foo
  • get_parameter(str parameter) -> str
  • get_parameters() -> dict

  • get_normalized_http_method() -> str

  • get_normalized_http_url() -> str

  • get_signable_params() -> dict

  • to_header () -> str // serialize as a header for an HTTPAuth request

  • to_postdata () -> str // serialize as post data for a POST request

  • to_url () -> str // serialize as a url for a GET request

  • sign_request(OAuthSignatureMethod, OAuthConsumer, OAuthToken) -> void

  • build_signature(OAuthSignatureMethod, OAuthConsumer, OAuthToken) -> str

  • (static) from_request([str http_method, str http_url, dict parameters])

  • (static) from_consumer_and_token(OAuthConsumer, OAuthToken, str http_method, str http_url, [dict parameters]) -> OAuthRequest

OAuthServer is a worker to check a requests validity against a data store

OAuthServer:

  • OAuthServer(OAuthDataStore) -> constructor
  • set_data_store(OAuthDataStore) -> void
  • get_data_store() -> OAuthDataStore

  • fetch_request_token (OAuthRequest) -> OAuthToken

  • fetch_access_token (OAuthRequest) -> OAuthToken

  • verify_request (OAuthRequest) -> OAuthToken

OAuthClient is a worker to attempt to execute a request

OAuthClient:

  • OAuthClient(OAuthConsumer, OAuthToken) -> constructor
  • get_consumer() -> OAuthConsumer
  • get_token() -> OAuthToken

  • fetch_request_token (OAuthRequest) -> OAuthToken

  • fetch_access_token (OAuthRequest) -> OAuthToken

OAuthDataStore is a database abstraction used to lookup consumers and tokens

OAuthDataStore:

  • lookup_consumer(str key) -> OAuthConsumer
  • lookup_token(OAuthConsumer, str token_type, str token_token) -> OAuthToken
  • lookup_nonce(OAuthConsumer, OAuthToken, str nonce, int timestamp) -> OAuthToken
  • fetch_request_token(OAuthConsumer) -> OAuthToken
  • fetch_access_token(OAuthConsumer, OAuthToken) -> OAuthToken