adds user frontend with login-, registration-, and webhook- features to your (express) application. Startingpoint for DIY api management
npm install express-api-user-management-signupexpress-api-user-management-signup
==================================
DEPRECATED by expressa
Middleware for quickly building login systems on top of apis/express apps. This module adds a user facade-backend with login / registration on top of that. Good startingpoint for DIY api management, processable thru webhooks, themable using custom js/css/jade templates.
#### login
#### login (basic theme)

#### logged in 
#### form generation using jsonschema
npm install -g coffeescript
npm install jade express@4.13.3
npm install express-api-user-management-signup
var app, cfg, express, http, port, usermanagement, webhookhost, webhookport;
express = require('express');
http = require('http');
require("coffee-script/register");
usermanagement = require('express-api-user-management-signup');
app = express();
port = process.env.PORT || 3010;
webhookport = process.env.WEBHOOK_HOST || port;
webhookhost = process.env.WEBHOOK_HOST || 'http://127.0.0.1';
cfg = {
webhook: {
url: 'http://' + webhookhost + ':' + webhookport,
requestdata: {
headers: {
'x-some-token': 'l1kj2k323'
}
}
},
mongo: {
host: 'localhost',
port: 27017,
name: 'foo'
},
layout: {
theme: __dirname + '/app/public.account', // define your own
// theme: __dirname + '/app/public.basic', // templates
title: {
brand: 'Projectname',
welcome: 'Please login to your account'
},
menu: {
'Apidoc': {
target: '_blank',
url: '/api/v1/doc'
},
'---': '---',
'Contact': {
target: '_blank',
url: 'mailto:support@foo.com'
}
},
formurl: '/js/form.json'
}
};
app.set('port', port);
app.use(usermanagement(app, express, cfg));
http.createServer(app).listen(app.get('port'), function() {
console.log('Express server listening on port ' + app.get('port'));
});
Define your own templates for easy integration with your js/css/html framework:
cp -R node_modules/express-api-user-management-signup/app/public.basic mytheme
and in the config define
...
layout: {
theme: __dirname + '/mytheme'
...
* coffeescript yay!
* New User Account Creation
* Secure Password Reset via Email
* Ability to Update / Delete Account
* Session Tracking for Logged-In Users
* Local Cookie Storage for Returning Users
* Blowfish-based Scheme Password Encryption
* end-user webhooks
* optional internal webhooks for flexibilitystorage (to integrate with api proxy like apiaxle or emailgateway e.g.)
* logging of db actions
* apikey support + regeneration of apikey
* works standalone and as express drop-in lib (the latter needs improvement eg. app.use)
* flexible form using (optionally remote) jsonschema
* optional google analytics by passing environment variable GOOGLE_ANALYTICS_TOKEN=LK-2342LK
By using jsonform, we can easily extend the form without having to fiddle with database code.
Just have a look at :
* the 'form.json' in this package
* the docs.
> HINT: you can change the 'formurl'-parameter of 'app.[js,coffee]' (or the json above) into a remote url in order to remotely manage the form
The following webhooks are fired whenever these things occur:
* configuredhost + /add
when user adds account
* configuredhost + /update
when user updates account
* configuredhost + /update/pass
when user changes password
* configuredhost + /update/apikey
when user regenerates apikey
* configuredhost + /login
when user logs in
* configuredhost + /reset/pass
when user resets password
Where configuredhost is defined by you in the config ('http://mygateway.com/foo' e.g.)
These webhooks can be reacted upon by other middle/software in order to
send emails or update api proxy settings e.g.
* tests
* responsive ui (for smartphone etc)
* url validation for webhook url in jsonschema
* smaller fonts jsonform validation error tooltips (to match the layout)
* Node.js - Application Server
* Express.js - Node.js Web Framework
* MongoDb - Database Storage
* Jade - HTML Templating Engine
* Stylus - CSS Preprocessor
* EmailJS - Node.js > SMTP Server Middleware
* Moment.js - Lightweight Date Library
* Twitter Bootstrap - UI Component & Layout Library
* jsonform
* underscore
* JSV