mudra

0.1.3 • Public • Published

mudra.js

Mudra is a simple authentication and authorisation library for NodeJS that uses MongoDB for storing credentials.

###Installation

npm install mudra

##Usage

var mudra = require('mudra');

Mudra functions support both callbacks and promises using Q


###Authentication

####Register account

Example using Callback

var params = {username: 'bill.gates@microsoft.com', password: 'microsoft', name: 'Bill Gates'};
mudra.register(params, function(response) {
   console.log(response);
});

Example using promises

var params = {username: 'bill.gates@microsoft.com', password: 'microsoft', name: 'Bill Gates'};
mudra.register(params).then(success, error);

function success(response) {
   console.log('success: ', response);
}

function error(response) {
   console.error('Error: ', response);
}

####Login

var params = {username: 'bill.gates@microsoft.com', password: 'microsoft'};
mudra.login(params, function(response) {
   console.log(response);
});

####Authenticate

var params = {username: 'bill.gates@microsoft.com', hash: '$2a$08$4Y7NNgKwZavoT8B.xy6RyuZPXOpxsitDNjq9nSlApRFh/ZAVL3WV2'};
mudra.authenticate(params, function(response) {
   console.log(response);
});

####Reset Password

var params = {username: 'bill.gates@microsoft.com', hash: '$2a$08$4Y7NNgKwZavoT8B.xy6RyuZPXOpxsitDNjq9nSlApRFh/ZAVL3WV2', password: 'new_password'};
mudra.reset_password(params, function(response) {
   console.log(response);
});

###Authorisation

####Create Role

var params = {role: 'admin'};
mudra.create_role(params, function(response) {
   console.log(response);
});

####Update Role (add or remove members)

var params = {role: 'admin', users: [{username: 'bill.gates@microsoft', name: 'Bill Gates'}]};
mudra.update_roles(params, function(callback) {
   console.log(response);
});

####Create Permission

var params = {permission: 'cancel_order'};
mudra.create_permission(params, function(response) {
   console.log(response);
});

####Update Permission (add or remove roles)

var params = {permission: 'cancel_order', roles: ['admin']};
mudra.update_permission(params, function(callback) {
   console.log(response);
});

####Check if user has permission

var params = {username: 'bill.gates@microsoft.com', hash: '$2a$08$4Y7NNgKwZavoT8B.xy6RyuZPXOpxsitDNjq9nSlApRFh/ZAVL3WV2', permission: 'cancel_order'};
mudra.check_permission(params, function(callback) {
   console.log(response);
});

###Contexts For example, a project might require readonly privileges given to a certain group but edit privileges given to another group. Admins might get all privileges. You can add permissions by using contexts as follows

var params = {
                "permission": "important_project",
                "roles": [
                    "admin"
                ],
                "context": [
                    {
                        "read": [
                            "read_group",
                            "edit_group"
                        ],
                        "edit": [
                            "edit_group"
                        ]
                    }
                ]
            };

mudra.update_permission(params, function(callback) {
   console.log(response);
});

Package Sidebar

Install

npm i mudra

Weekly Downloads

3

Version

0.1.3

License

MIT

Last publish

Collaborators

  • baliganikhil