Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

111 lines (75 sloc) 5.353 kb
# jsOAuth - JavaScript OAuth library
jsOAuth is a javascript library implementing the OAuth protocol. jsOAuth aims to
form the basis of custom clients such as Twitter and Yahoo.
Written in JavaScript, jsOAuth aims to be a fully featured open source OAuth library for use
in Adobe AIR, Appcelerator Titanium and PhoneGAP.
In fact, anywhere that javascript can be used and has cross-domain
XMLHttpRequests. **For security reasons jsOAuth doesn't run in the browser. Browsers are only
mentioned here for running the test suite.** If you need jsOAuth in the browser, write an extension.
Released under the MIT. Please see LICENSE in the project root folder for more
information.
##Documentation
Find the API reference and tutorials on the [Documentation site](http://bytespider.github.com/jsOAuth/).
For recipes on ways to get things working with jsOAuth, try the [recipes page](https://github.com/bytespider/jsOAuth/wiki/Recipes).
If you need more help or discussion, try the [Google jsOAuth Group](https://groups.google.com/group/jsoauth).
## Usage
Download the [minified library](https://github.com/downloads/bytespider/jsOAuth/jsOAuth-@VERSION.min.js) and include it in your html.
<script type="text/javascript" src="library/jsOAuth-@VERSION.min.js"></script>
This gives you a global OAuth object for you to set up and make requests with.
Setting it up is simple.
<script type="text/javascript">
var oauth, options;
options = {
enablePrivilege: true,
consumerKey: 'ba9df9055c77f338',
consumerSecret: '846ffe1ec3b18989e73fe7fff833'
};
oauth = OAuth(options);
</script>
*Note: **EnablePrivilege** lets you test jsOAuth in Firefox 3, Firefox >= 5 doesn't work*
You can test in chrome using the following commandline on OSX `/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --allow-file-access-from-files --allow-file-access --user-data-dir=~/chrome-test/ spec/runner.html`
On Ubuntu try `/opt/google/chrome/google-chrome --disable-web-security --allow-file-access-from-files --allow-file-access --user-data-dir=~/chrome-test/ spec/runner.html`
You'll need to replace the consumer key and secret with your own. Once that is
done, you can make your authenticated 2-legged request.
<script type="text/javascript">
oauth.get('http://oauth-sandbox.sevengoslings.net/two_legged', function (data) {
alert(data);
});
</script>
Hopefully the syntax will look familier to you, if you've used any kind of javscript
framework such as jQuery.
**Please let me know if jsOAuth doesn't work for you or if your application
requires something jsOAuth doesn't currently support. I'm always happy to hear your
suggestions. [feedback@bytespider.eu](mailto:feedback@bytespider.eu?subject=jsOAuth%20suggestion/feedback)**
If you like jsOAuth and want to see new features, [please donate](http://pledgie.com/campaigns/14219/).
## Further reading and tutorials
* [Example: Boilerplate for PIN based authentication in javascript](https://gist.github.com/1071227)
* [Tutorial: Titanium & jsOAuth - Part 1](http://code.bytespider.eu/post/3032429995/twitter-client-using-titanium-and-jsoauth-part-1)
* [Tutorial: Titanium & jsOAuth - Part 2](http://code.bytespider.eu/post/3088341182/twitter-client-using-titanium-and-jsoauth-part-2)
* [Tutorial: OAuth and PIN based authorization in Javascript](http://log.coffeesounds.com/oauth-and-pin-based-authorization-in-javascri)
* [Tutotial: Twitter: jsOAuth and Child Browser plugin: non-PIN OAuth access!](http://www.mobiledevelopersolutions.com/home/start/twominutetutorials/tmt5p1)
* [Snippet: A simple example of PIN-based oauth flow with Twitter and jsOAuth by @funkatron](https://gist.github.com/979955)
* [Snippet: How to upload files using jsOAuth and FormData by @lukaszkorecki](https://gist.github.com/1038408)
##Applications##
* [Application: Mikrob.chrome by @lukaszkorecki](https://github.com/lukaszkorecki/Mikrob.chrome/blob/master/lib/oauth_request.js)
* [Safari Extension: Shortly by Zhusee](https://github.com/ZZHC/Shortly/tree/v2.0beta1/Shortly.safariextension/oauth)
##Libraries##
* [RequestPack](https://github.com/lukaszkorecki/RequestPack)
If you have a tutorial you think should be included here, please email me with links.
## Building
To start developing, clone this repository and initialise the dependent git submodules by executing the following commands:
git submodule init
git submodule update
To build the entire library type `make` from the command line.
To build just the W3C compatible version, type `make jsoauth` from the command line.
To build just CommonJS/Node.JS compatible module type `make commonjs` from the command line.
All files are compiled into the dist directory.
To start over once you have already built a copy, type `make clean` to delete
all built distribution files
## Issues
Please report all issues on the GitHub [issue tracker for jsOauth](http://github.com/bytespider/jsOAuth/issues).
## Testing ##
To test I use Google Chrome
`/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --disable-web-security --allow-file-access-from-files --allow-file-access spec/runner.html`
## Authors
* Rob Griffiths (rob AT bytespider DOT eu) [@bytespider](https://twitter.com/bytespider)
Jump to Line
Something went wrong with that request. Please try again.