mirror of
https://github.com/atlanticbiomedical/biomedjs.git
synced 2025-07-02 00:47:26 -04:00
Added node-modules
This commit is contained in:
138
node_modules/passport/README.md
generated
vendored
Normal file
138
node_modules/passport/README.md
generated
vendored
Normal file
@ -0,0 +1,138 @@
|
||||
# Passport
|
||||
|
||||
Passport is [Express](http://expressjs.com/)-compatible authentication
|
||||
middleware for [Node.js](http://nodejs.org/).
|
||||
|
||||
Passport's sole purpose is to authenticate requests, which it does through an
|
||||
extensible set of plugins known as _strategies_. Passport does not mount
|
||||
routes or assume any particular database schema, which maximizes flexiblity and
|
||||
allows application-level decisions to be made by the developer. The API is
|
||||
simple: you provide Passport a request to authenticate, and Passport provides
|
||||
hooks for controlling what occurs when authentication succeeds or fails.
|
||||
|
||||
## Install
|
||||
|
||||
$ npm install passport
|
||||
|
||||
## Usage
|
||||
|
||||
#### Strategies
|
||||
|
||||
Passport uses the concept of strategies to authenticate requests. Strategies
|
||||
can range from verifying username and password credentials, delegated
|
||||
authentication using [OAuth](http://oauth.net/) (for example, via [Facebook](http://www.facebook.com/)
|
||||
or [Twitter](http://twitter.com/)), or federated authentication using [OpenID](http://openid.net/).
|
||||
|
||||
Before authenticating requests, the strategy (or strategies) used by an
|
||||
application must be configured.
|
||||
|
||||
passport.use(new LocalStrategy(
|
||||
function(username, password, done) {
|
||||
User.findOne({ username: username, password: password }, function (err, user) {
|
||||
done(err, user);
|
||||
});
|
||||
}
|
||||
));
|
||||
|
||||
#### Sessions
|
||||
|
||||
Passport will maintain persistent login sessions. In order for persistent
|
||||
sessions to work, the authenticated user must be serialized to the session, and
|
||||
deserialized when subsequent requests are made.
|
||||
|
||||
Passport does not impose any restrictions on how your user records are stored.
|
||||
Instead, you provide functions to Passport which implements the necessary
|
||||
serialization and deserialization logic. In a typical application, this will be
|
||||
as simple as serializing the user ID, and finding the user by ID when
|
||||
deserializing.
|
||||
|
||||
passport.serializeUser(function(user, done) {
|
||||
done(null, user.id);
|
||||
});
|
||||
|
||||
passport.deserializeUser(function(id, done) {
|
||||
User.findById(id, function (err, user) {
|
||||
done(err, user);
|
||||
});
|
||||
});
|
||||
|
||||
#### Middleware
|
||||
|
||||
To use Passport in an [Express](http://expressjs.com/) or
|
||||
[Connect](http://senchalabs.github.com/connect/)-based application, configure it
|
||||
with the required `passport.initialize()` middleware. If your application uses
|
||||
persistent login sessions (recommended, but not required), `passport.session()`
|
||||
middleware must also be used.
|
||||
|
||||
app.configure(function() {
|
||||
app.use(express.static(__dirname + '/../../public'));
|
||||
app.use(express.cookieParser());
|
||||
app.use(express.bodyParser());
|
||||
app.use(express.session({ secret: 'keyboard cat' }));
|
||||
app.use(passport.initialize());
|
||||
app.use(passport.session());
|
||||
app.use(app.router);
|
||||
});
|
||||
|
||||
#### Authenticate Requests
|
||||
|
||||
Passport provides an `authenticate()` function, which is used as route
|
||||
middleware to authenticate requests.
|
||||
|
||||
app.post('/login',
|
||||
passport.authenticate('local', { failureRedirect: '/login' }),
|
||||
function(req, res) {
|
||||
res.redirect('/');
|
||||
});
|
||||
|
||||
## Examples
|
||||
|
||||
For a complete, working example, refer to the [login example](https://github.com/jaredhanson/passport-local/tree/master/examples/login)
|
||||
included in [passport-local](https://github.com/jaredhanson/passport-local).
|
||||
|
||||
## Strategies
|
||||
|
||||
Passport has a comprehensive set of **over 120** authentication strategies
|
||||
covering social networking, enterprise integration, API services, and more.
|
||||
The [complete list](https://github.com/jaredhanson/passport/wiki/Strategies) is
|
||||
available on the [wiki](https://github.com/jaredhanson/passport/wiki).
|
||||
|
||||
The following table lists commonly used strategies:
|
||||
|
||||
|Strategy | Protocol |Developer |
|
||||
|---------------------------------------------------------------|--------------------------|------------------------------------------------|
|
||||
|[Local](https://github.com/jaredhanson/passport-local) | HTML form |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|[OpenID](https://github.com/jaredhanson/passport-openid) | OpenID |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|[BrowserID](https://github.com/jaredhanson/passport-browserid) | BrowserID |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|[Facebook](https://github.com/jaredhanson/passport-facebook) | OAuth 2.0 |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|[Google](https://github.com/jaredhanson/passport-google) | OpenID |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|[Google](https://github.com/jaredhanson/passport-google-oauth) | OAuth / OAuth 2.0 |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|[Twitter](https://github.com/jaredhanson/passport-twitter) | OAuth |[Jared Hanson](https://github.com/jaredhanson) |
|
||||
|
||||
## Related Modules
|
||||
|
||||
- [Locomotive](https://github.com/jaredhanson/locomotive) — Powerful MVC web framework
|
||||
- [OAuthorize](https://github.com/jaredhanson/oauthorize) — OAuth service provider toolkit
|
||||
- [OAuth2orize](https://github.com/jaredhanson/oauth2orize) — OAuth 2.0 authorization server toolkit
|
||||
- [connect-ensure-login](https://github.com/jaredhanson/connect-ensure-login) — middleware to ensure login sessions
|
||||
|
||||
The [modules](https://github.com/jaredhanson/passport/wiki/Modules) page on the
|
||||
[wiki](https://github.com/jaredhanson/passport/wiki) lists other useful modules
|
||||
that build upon or integrate with Passport.
|
||||
|
||||
## Tests
|
||||
|
||||
$ npm install --dev
|
||||
$ make test
|
||||
|
||||
[](http://travis-ci.org/jaredhanson/passport)
|
||||
|
||||
## Credits
|
||||
|
||||
- [Jared Hanson](http://github.com/jaredhanson)
|
||||
|
||||
## License
|
||||
|
||||
[The MIT License](http://opensource.org/licenses/MIT)
|
||||
|
||||
Copyright (c) 2011-2013 Jared Hanson <[http://jaredhanson.net/](http://jaredhanson.net/)>
|
Reference in New Issue
Block a user