charon-auth

1.0.3 • Public • Published

Charon

Authentication middleware for Node.js

Install

$ npm install charon-auth

Test

$ node test/server.js

Usage

var express      = require('express');
var app          = express();

var Charon       = require('charon-auth');
var charonUser   = require('./model.js');    // See user model
var charonConfig = require('./config.json'); // See configuration
var auth         = new Charon(charonUser, charonConfig);

// Optional parameter
auth.set('environment', 'productive');
auth.set('notifications', true);
auth.set('flash', true);

app.post('/signin', auth.signin({
  successRedirect: '/',
  failureRedirect: '/signin'
}));

User model

var mongoose       = require('mongoose');
var mongooseUnique = require('mongoose-unique-validator');

var userSchema = mongoose.Schema({
    username:    { type: String, required: true, unique: true },
    email:       { type: String, required: true, unique: true },
    password:    { type: String, required: true },
    resetToken:  { type: String },
    resetExpire: { type: Date }
});

userSchema.plugin(mongooseUnique);

module.exports = mongoose.model('User', userSchema);

Configuration

{
  "server": {
    "url": "http://localhost:3000"
  },
  "database": {
    "url": "mongodb://localhost/charon"
  },
  "mail": {
    "sender": "noreply@charon.com",
    "smtp": {
      "host": "localhost",
      "port": 25,
      "auth": {
        "user": "username",
        "pass": "password"
      }
    }
  }
}

Functions

Function Parameter
Sign in signin(options) username; password
Sign out signout(options)
Sign up signup(options) username; email; password; passwordConfirm
Send reset instructions forgot(options) email
Reset password reset(options) resetToken; password; passwordConfirm;

Options

Set options as JSON Array

{
  successRedirect: '/'
  failureRedirect: '/'
}

Example

app.post('/signin', auth.signin({
  successRedirect: '/',
  failureRedirect: '/signin'
}));
<form action="/signin" method="POST">
  <input type="text" name="username" placeholder="Username" required="" autofocus="">
  <input type="password" name="password" placeholder="Password" required="">
  <button type="submit">Sign in</button>
</form>

Versions

Current Tags

  • Version
    Downloads (Last 7 Days)
    • Tag
  • 1.0.3
    2
    • latest

Version History

  • Version
    Downloads (Last 7 Days)
    • Published
  • 1.0.3
    2
  • 1.0.2
    2
  • 1.0.1
    2
  • 1.0.0
    1

Package Sidebar

Install

npm i charon-auth

Weekly Downloads

7

Version

1.0.3

License

MIT

Last publish

Collaborators

  • skaren