Permalink
Browse files

Update README.

  • Loading branch information...
1 parent 1bb4e2c commit 31028929023d66b2d2052e8c5fc6b1c268ddcd32 @jaredhanson committed Nov 24, 2011
Showing with 51 additions and 0 deletions.
  1. +51 −0 README.md
View
@@ -3,6 +3,57 @@
[Passport](https://github.com/jaredhanson/passport) strategy for authenticating
with GitHub using the OAuth 2.0 API.
+## Installation
+
+ $ npm install passport-github
+
+## Usage
+
+#### Configure Strategy
+
+The GitHub authentication strategy authenticates users using a GitHub account
+and OAuth 2.0 tokens. The strategy requires a `verify` callback, which accepts
+these credentials and calls `done` providing a user, as well as `options`
+specifying a client ID, client secret, and callback URL.
+
+ passport.use(new GitHubStrategy({
+ clientID: GITHUB_CLIENT_ID,
+ clientSecret: GITHUB_CLIENT_SECRET,
+ callbackURL: "http://127.0.0.1:3000/auth/github/callback"
+ },
+ function(accessToken, refreshToken, profile, done) {
+ User.findOrCreate({ githubId: profile.id }, function (err, user) {
+ return done(err, user);
+ });
+ }
+ ));
+
+#### Authenticate Requests
+
+Use `passport.authenticate()`, specifying the `'github'` strategy, to
+authenticate requests.
+
+For example, as route middleware in an [Express](http://expressjs.com/)
+application:
+
+ app.get('/auth/github',
+ passport.authenticate('github'),
+ function(req, res){
+ // The request will be redirected to GitHub for authentication, so this
+ // function will not be called.
+ });
+
+ app.get('/auth/github/callback',
+ passport.authenticate('github', { failureRedirect: '/login' }),
+ function(req, res) {
+ // Successful authentication, redirect home.
+ res.redirect('/');
+ });
+
+#### Examples
+
+For a complete, working example, refer to the [login example](https://github.com/jaredhanson/passport-github/tree/master/examples/login).
+
## Credits
- [Jared Hanson](http://github.com/jaredhanson)

0 comments on commit 3102892

Please sign in to comment.