Documentation
¶
Index ¶
- Variables
- func NewClient(ctx context.Context, config *Config, token *Token) *http.Client
- func ParseAuthorizationCallback(req *http.Request) (requestToken, verifier string, err error)
- func PercentEncode(input string) string
- type Config
- func (c *Config) AccessToken(requestToken, requestSecret, verifier string) (accessToken, accessSecret string, err error)
- func (c *Config) AuthorizationURL(requestToken string) (*url.URL, error)
- func (c *Config) Client(ctx context.Context, t *Token) *http.Client
- func (c *Config) RequestToken() (Credentials, error)
- type Credentials
- type Endpoint
- type HMACSigner
- type RSASigner
- type Signer
- type Token
- type TokenSource
- type Transport
Constants ¶
This section is empty.
Variables ¶
var HTTPClient contextKey
HTTPClient is the context key to associate an *http.Client value with a context.
var NoContext = context.TODO()
NoContext is the default context to use in most cases.
Functions ¶
func ParseAuthorizationCallback ¶
ParseAuthorizationCallback parses an OAuth1 authorization callback request from a provider server. The oauth_token and oauth_verifier parameters are parsed to return the request token from earlier in the flow and the verifier string. See RFC 5849 2.2 Resource Owner Authorization.
func PercentEncode ¶
PercentEncode percent encodes a string according to RFC 3986 2.1.
Types ¶
type Config ¶
type Config struct { // Consumer Key (Client Identifier) ConsumerKey string // Consumer Secret (Client Shared-Secret) ConsumerSecret string // Callback URL CallbackURL string // Provider Endpoint specifying OAuth1 endpoint URLs Endpoint Endpoint // Realm of authorization Realm string // OAuth1 Signer (defaults to HMAC-SHA1) Signer Signer }
Config represents an OAuth1 consumer's (client's) key and secret, the callback URL, and the provider Endpoint to which the consumer corresponds.
func (*Config) AccessToken ¶
func (c *Config) AccessToken(requestToken, requestSecret, verifier string) (accessToken, accessSecret string, err error)
AccessToken obtains an access token (token credential) by POSTing a request (with oauth_token and oauth_verifier in the auth header) to the Endpoint AccessTokenURL. Returns the access token and secret (token credentials). See RFC 5849 2.3 Token Credentials.
func (*Config) AuthorizationURL ¶
AuthorizationURL accepts a request token and returns the *url.URL to the Endpoint's authorization page that asks the user (resource owner) for to authorize the consumer to act on his/her/its behalf. See RFC 5849 2.2 Resource Owner Authorization.
func (*Config) RequestToken ¶
func (c *Config) RequestToken() (Credentials, error)
RequestToken obtains a Request token and secret (temporary credential) by POSTing a request (with oauth_callback in the auth header) to the Endpoint RequestTokenURL. The response body form is validated to ensure oauth_callback_confirmed is true. Returns the request token and secret (temporary credentials). See RFC 5849 2.1 Temporary Credentials.
type Credentials ¶
type Endpoint ¶
type Endpoint struct { // Request URL (Temporary Credential Request URI) RequestTokenURL string // Authorize URL (Resource Owner Authorization URI) AuthorizeURL string // Access Token URL (Token Request URI) AccessTokenURL string }
Endpoint represents an OAuth1 provider's (server's) request token, owner authorization, and access token request URLs.
type HMACSigner ¶
type HMACSigner struct {
ConsumerSecret string
}
HMACSigner signs messages with an HMAC SHA1 digest, using the concatenated consumer secret and token secret as the key.
type RSASigner ¶
type RSASigner struct {
PrivateKey *rsa.PrivateKey
}
RSASigner RSA PKCS1-v1_5 signs SHA1 digests of messages using the given RSA private key.
type Signer ¶
type Signer interface { // Name returns the name of the signing method. Name() string // Sign signs the message using the given secret key. Sign(key string, message string) (string, error) }
A Signer signs messages to create signed OAuth1 Requests.
type Token ¶
Token is an AccessToken (token credential) which allows a consumer (client) to access resources from an OAuth1 provider server.
type TokenSource ¶
A TokenSource can return a Token.
func StaticTokenSource ¶
func StaticTokenSource(token *Token) TokenSource
StaticTokenSource returns a TokenSource which always returns the same Token. This is appropriate for tokens which do not have a time expiration.
type Transport ¶
type Transport struct { // Base is the base RoundTripper used to make HTTP requests. If nil, then // http.DefaultTransport is used Base http.RoundTripper // contains filtered or unexported fields }
Transport is an http.RoundTripper which makes OAuth1 HTTP requests. It wraps a base RoundTripper and adds an Authorization header using the token from a TokenSource.
Transport is a low-level component, most users should use Config to create an http.Client instead.