djthread / oauther

An OAuth 1.0 for Elixir

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

OAuther

Build Status Hex Version

Library to authenticate with OAuth 1.0 protocol.

Installation

Add OAuther as a dependency to your mix.exs file:

defp deps do
  [{:oauther, "~> 1.1"}]
end

After you are done, run mix deps.get in your shell to fetch the dependencies.

Usage

Example below shows the use of hackney HTTP client for interacting with the Twitter API. Protocol parameters are transmitted using the HTTP "Authorization" header field.

creds = OAuther.credentials(consumer_key: "dpf43f3p2l4k3l03", consumer_secret: "kd94hf93k423kf44", token: "nnch734d00sl2jdk", token_secret: "pfkkdhi9sl3r4s00")
#=> %OAuther.Credentials{
#=>   consumer_key: "dpf43f3p2l4k3l03",
#=>   consumer_secret: "kd94hf93k423kf44",
#=>   method: :hmac_sha1,
#=>   token: "nnch734d00sl2jdk",
#=>   token_secret: "pfkkdhi9sl3r4s00"
#=> }
params = OAuther.sign("post", "https://api.twitter.com/1.1/statuses/lookup.json", [{"id", 485086311205048320}], creds)
#=> [
#=>   {"oauth_signature", "ariK9GrGLzeEJDwQcmOTlf7jxeo="},
#=>   {"oauth_consumer_key", "dpf43f3p2l4k3l03"},
#=>   {"oauth_nonce", "L6a3Y1NeNwbU9Sqd6XnwNU+pjm6o0EyA"},
#=>   {"oauth_signature_method", "HMAC-SHA1"},
#=>   {"oauth_timestamp", 1517250224},
#=>   {"oauth_version", "1.0"},
#=>   {"oauth_token", "nnch734d00sl2jdk"},
#=>   {"id", 485086311205048320}
#=> ]
{header, req_params} = OAuther.header(params)
#=> {{"Authorization",
#=>   "OAuth oauth_signature=\"ariK9GrGLzeEJDwQcmOTlf7jxeo%3D\", oauth_consumer_key=\"dpf43f3p2l4k3l03\", oauth_nonce=\"L6a3Y1NeNwbU9Sqd6XnwNU%2Bpjm6o0EyA\", oauth_signature_method=\"HMAC-SHA1\", oauth_timestamp=\"1517250224\", oauth_version=\"1.0\", oauth_token=\"nnch734d00sl2jdk\""},
#=>  [{"id", 485086311205048320}]}
:hackney.post("https://api.twitter.com/1.1/statuses/lookup.json", [header], {:form, req_params})
#=> {:ok, 200, [...], #Reference<0.0.0.837>}

License

OAuther is released under the ISC license.

About

An OAuth 1.0 for Elixir

License:ISC License


Languages

Language:Elixir 100.0%