mirror https://github.com/tim/erlang-oauth

Tim Fletcher 7969309dd6 Bump version to 1.2.1 13 years ago
ebin 7969309dd6 Bump version to 1.2.1 13 years ago
src 72f7a87808 Use verify_in_constant_time in plaintext signature verification 13 years ago
Emakefile be1aa9646d Move compile options to Emakefile; simplify Makefile. 15 years ago
License.txt dcbf2273d9 Update copyright date. 14 years ago
Makefile 24a39a2700 Move .app file to ebin; update Makefile. 14 years ago
README.txt e32d49094b Update README 14 years ago
THANKS.txt 09fa180b1c Add THANKS. 14 years ago

README.txt

An Erlang OAuth implementation.

Quick start (client usage):

$ make
...
$ erl -pa ebin -s crypto -s inets
...
1> Consumer = {"key", "secret", hmac_sha1}.
...
2> RequestTokenURL = "http://term.ie/oauth/example/request_token.php".
...
3> {ok, RequestTokenResponse} = oauth:get(RequestTokenURL, [], Consumer).
...
4> RequestTokenParams = oauth:params_decode(RequestTokenResponse).
...
5> RequestToken = oauth:token(RequestTokenParams).
...
6> RequestTokenSecret = oauth:token_secret(RequestTokenParams).
...
7> AccessTokenURL = "http://term.ie/oauth/example/access_token.php".
...
8> {ok, AccessTokenResponse} = oauth:get(AccessTokenURL, [], Consumer, RequestToken, RequestTokenSecret).
...
9> AccessTokenParams = oauth:params_decode(AccessTokenResponse).
...
10> AccessToken = oauth:token(AccessTokenParams).
...
11> AccessTokenSecret = oauth:token_secret(AccessTokenParams).
...
12> URL = "http://term.ie/oauth/example/echo_api.php".
...
13> {ok, Response} = oauth:get(URL, [{"hello", "world"}], Consumer, AccessToken, AccessTokenSecret).
...
14> oauth:params_decode(Response).
...


Consumer credentials are represented as follows:

{Key::string(), Secret::string(), plaintext}

{Key::string(), Secret::string(), hmac_sha1}

{Key::string(), RSAPrivateKeyPath::string(), rsa_sha1} % client side

{Key::string(), RSACertificatePath::string(), rsa_sha1} % server side


The percent encoding/decoding implementations are based on those found in
the ibrowse library, written by Chandrashekhar Mullaparthi.

Example client/server code is at http://github.com/tim/erlang-oauth-examples.

Unit tests are at http://github.com/tim/erlang-oauth-tests.

Erlang/OTP R14B or greater is required for RSA-SHA1.