README.md
# Passport-Trakt
[Passport](http://passportjs.org/) strategy for authenticating with [Trakt](http://trakt.tv/)
using the OAuth 2.0 API.
[![build status](https://img.shields.io/travis/alexperrault/passport-trakt.svg?style=flat-square)](http://travis-ci.org/alexperrault/passport-trakt)
[![coverage status](https://img.shields.io/coveralls/alexperrault/passport-trakt.svg?style=flat-square)](https://coveralls.io/r/alexperrault/passport-trakt)
[![quality](https://img.shields.io/codeclimate/github/alexperrault/passport-trakt.svg?style=flat-square)](https://codeclimate.com/github/alexperrault/passport-trakt)
[![npm version](https://img.shields.io/npm/v/passport-trakt.svg?style=flat-square)](https://www.npmjs.com/package/passport-trakt)
[![license](https://img.shields.io/npm/l/passport-trakt.svg?style=flat-square)](http://opensource.org/licenses/MIT)
[![dependency status](https://img.shields.io/david/alexperrault/passport-trakt.svg?style=flat-square)](https://www.npmjs.com/package/passport-trakt)
[![devDependency status](https://img.shields.io/david/dev/alexperrault/passport-trakt.svg?style=flat-square)](https://www.npmjs.com/package/passport-trakt)
[![npm install](https://nodei.co/npm/passport-trakt.png)](https://www.npmjs.com/package/passport-trakt)
This module lets you authenticate using Trakt in your Node.js applications.
By plugging into Passport, Trakt authentication can be easily and
unobtrusively integrated into any application or framework that supports
[Connect](http://www.senchalabs.org/connect/)-style middleware, including
[Express](http://expressjs.com/).
## Install
$ npm install passport-trakt
## Usage
#### Configure Strategy
The Trakt authentication strategy authenticates users using a Trakt 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 TraktStrategy({
clientID: TRAKT_CLIENT_ID,
clientSecret: TRAKT_CLIENT_SECRET,
callbackURL: "https://127.0.0.1:3000/auth/trakt/callback"
},
function(accessToken, refreshToken, params, profile, done) {
User.findOrCreate({ traktId: profile.id }, function (err, user) {
return done(err, user);
});
}
));
#### Authenticate Requests
Use `passport.authenticate()`, specifying the `'trakt'` strategy, to
authenticate requests.
For example, as route middleware in an [Express](http://expressjs.com/)
application:
app.get('/auth/trakt',
passport.authenticate('trakt'));
app.get('/auth/trakt/callback',
passport.authenticate('trakt', { 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/alexperrault/passport-trakt/tree/master/examples/login).
## Tests
$ npm install --dev
$ make test
## Credits
- [Alexandre Perrault](http://github.com/alexperrault)
## License
[The MIT License](https://github.com/alexperrault/passport-trakt/blob/master/LICENSE)
Copyright (c) 2015 Alexandre Perrault <[http://www.perrau.lt/](http://www.perrau.lt/)>