https://github.com/developmentseed/bones-auth
Base authentication model, view and middleware
https://github.com/developmentseed/bones-auth
Last synced: 10 months ago
JSON representation
Base authentication model, view and middleware
- Host: GitHub
- URL: https://github.com/developmentseed/bones-auth
- Owner: developmentseed
- Created: 2011-03-02T03:58:04.000Z (about 15 years ago)
- Default Branch: master
- Last Pushed: 2012-07-20T19:47:05.000Z (almost 14 years ago)
- Last Synced: 2024-04-10T03:11:32.184Z (about 2 years ago)
- Language: JavaScript
- Homepage:
- Size: 310 KB
- Stars: 18
- Watchers: 43
- Forks: 4
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
Bones Auth
----------
Provides base `Auth` and `AuthList` (model, collection) base
classes and `authenticate` Connect middleware for implementing basic
session-based user login with Backbone.js, Bones and Express.
A basic `User` model that extends `Auth` is provided as an example and
starting point. Integration with `bones-admin` through administrative views
is also available.
### Tested with
- developmentseed bones 0.0.2
- documentcloud backbone 0.3.3
- visionmedia express 1.0.7
### Running tests
- Use [kkaefer's expresso branch](https://github.com/kkaefer/expresso/tree/stop_listening_servers)
- Run `npm test`
### Components
- `bones-auth.js`: client side javascript. Contains the mvc classes for any
client-side `backbone.js` code to reference.
- `bones-auth`: common js module for use with node.js. Includes server-side
specific overrides to mvc classes as well as other server-side code.
### Usage
#### `Auth`
Abstract model class. Extend it with your own model to create a model which can
be "authenticated". See the `User` model for an example.
#### `AuthList`
Abstract collection class. Extend it for use with collections that contain
model classes inheriting from `Auth`.
#### `authenticate` middleware
Require `authenticate` connect middleware and add it as a middleware for
authenticating models. Automatically adds and manages the Connect session
middleware -- session cookies will only be sent and active when authenticating
and/or an authenticated session already exists. Allows for sane proxy caching.
var express = require('express'),
server = express.createServer(),
secret = 'MySecretKey';
// Express middleware.
server.use(express.bodyDecoder());
server.use(express.cookieDecoder());
// Pass secret key to Bones for CSRF protection.
require('bones').Bones(server, { secret: secret });
// Require bones-auth to use authenticate middleware.
// Handles authentication requests to `/api/Authenticate`.
var authenticate = require('bones-auth').authenticate;
server.use(authenticate({ secret: secret });
#### Authors
- [Will White](http://github.com/willwhite)
- [Young Hahn](http://github.com/yhahn)