cervo
v0.0.6
Published
__Easy-to-use__ [nodejs](http://nodejs.org) server. It is abstracting express plumbing and offers basic but sufficient authentication features based on token. It is intended to be used by IOT. You can easily add custom endpoints, public or secured ones.
Downloads
5
Readme
Cervo
Easy-to-use nodejs server. It is abstracting express plumbing and offers basic but sufficient authentication features based on token. It is intended to be used by IOT. You can easily add custom endpoints, public or secured ones.
Code and examples uses ES6 syntaxes.
Installation
Requires nodejs.
npm install cervo
How using it ?
const Cervo = require('cervo');
let cervo = new Cervo();
cervo.run();
Starting on a specific PORT
let cervo = new Cervo({
port: 3000
});
cervo.run();
Using authentication
It is based on token. Credentials (users/passwords) are stored in a database. The workflow is the following :
- Call signin/signup endpoint with user and password
- The endpoint returns a Token
- Call secured endpoints by passing the token in the request header with the key x-access-token
Store credentials in mongodb
let cervo = new Cervo({
database : 'mongodb://[user]:[password]@[mongo_provider]:[mongo_port]/[db_id]'
});
cervo.run();
Core API
Endpoint | Description | Example
---- | --- | ---
[POST] /public/authenticate
| create a user/connexion | signup?name=[user_name]&password=[password]
[GET] /secured/
| root of secured endpoints |
[GET] /secured/users
| list of users |
[POST] /secured/signin
| signin requires name and password in the request header |
Custom endpoints
You can define your own endpoints :
let cervo = new Cervo({});
cervo.get('/books', function(){
res.send(...); // Add the code that get the list of books
});
cervo.run();
By default custom endpoints are public and are hosted under /public.
Secured endpoints
You can define secured endpoints only available for authentified clients :
let cervo = new Cervo({});
cervo.sget('/books', function(){ // pget for private get
res.send(...); // Add the code that get the list of books
});
cervo.run();
Todo
- Embedded sqlite for storing users
- Encapsulate mongoose API to be able to add entities
- Auto-sugested token for marketing usages