passport-local-token
Version:
Local token authentication strategy for Passport.
107 lines (78 loc) • 3.19 kB
Markdown
# passport-local-token
[](https://travis-ci.org/pferretti/passport-local-token)
[](https://coveralls.io/r/pferretti/passport-local-token)
[](https://codeclimate.com/github/pferretti/passport-local-token)
[](https://david-dm.org/pferretti/passport-local-token)
[](https://www.gittip.com/pferretti/)
[Passport](http://passportjs.org/) strategy for authenticating with an authentication token.
This module lets you authenticate using a token in your Node.js
applications. It is based on passport-local module by Jared Hanson.
By plugging into Passport, token 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-local-token
## Usage
#### Configure Strategy
The token authentication strategy authenticates users using a token.
The strategy requires a `verify` callback, which accepts these
credentials and calls `done` providing a user.
Here is the pseudo code.
passport.use('local-token', new LocalStrategy(
function(token, done) {
AccessToken.findOne({
id: token
}, function(error, accessToken) {
if (error) {
return done(error);
}
if (accessToken) {
if (!token.isValid(accessToken)) {
return done(null, false);
}
User.findOne({
id: accessToken.userId
}, function(error, user) {
if (error) {
return done(error);
}
if (!user) {
return done(null, false);
}
return done(null, user);
});
} else {
return done(null);
}
});
}
));
#### Authenticate Requests
Use `passport.authenticate()`, specifying the `'local'` strategy, to
authenticate requests.
For example, as route middleware in an [Express](http://expressjs.com/)
application:
app.post('/login',
passport.authenticate(
'local-token',
{
session: false,
optional: false
}
),
function(req, res) {
res.redirect('/');
}
);
You can also set the parameter `optional` to true, so the same call can be both authenticated and not authenticated.
## Examples
For complete, working examples, refer to the multiple [examples](https://github.com/jaredhanson/passport-token/tree/master/examples) included. (NOT UPDATED)
## Tests
$ npm install
$ npm test
## Credits
- [Paolo Ferretti](http://github.com/pferretti)
## License
[The MIT License](http://opensource.org/licenses/MIT)
Copyright (c) 2014 Paolo Ferretti <[http://paoloferretti.net/](http://paoloferretti.net/)>