mudra
Version:
Mudra is a simple authentication and authorisation library for NodeJS that uses MongoDB for storing credentials. (Full Info: https://github.com/baliganikhil/mudra.js)
132 lines (115 loc) • 3.41 kB
Markdown
mudra.js
===
Mudra is a simple authentication and authorisation library for NodeJS that uses MongoDB for storing credentials.
```
npm install mudra
```
```
var mudra = require('mudra');
```
**Mudra functions support both callbacks and promises using Q**
___
Example using Callback
```javascript
var params = {username: 'bill.gates@microsoft.com', password: 'microsoft', name: 'Bill Gates'};
mudra.register(params, function(response) {
console.log(response);
});
```
Example using promises
```javascript
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);
}
```
```javascript
var params = {username: 'bill.gates@microsoft.com', password: 'microsoft'};
mudra.login(params, function(response) {
console.log(response);
});
```
```javascript
var params = {username: 'bill.gates@microsoft.com', hash: '$2a$08$4Y7NNgKwZavoT8B.xy6RyuZPXOpxsitDNjq9nSlApRFh/ZAVL3WV2'};
mudra.authenticate(params, function(response) {
console.log(response);
});
```
```javascript
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);
});
```
___
```javascript
var params = {role: 'admin'};
mudra.create_role(params, function(response) {
console.log(response);
});
```
```javascript
var params = {role: 'admin', users: [{username: 'bill.gates@microsoft', name: 'Bill Gates'}]};
mudra.update_roles(params, function(callback) {
console.log(response);
});
```
```javascript
var params = {permission: 'cancel_order'};
mudra.create_permission(params, function(response) {
console.log(response);
});
```
```javascript
var params = {permission: 'cancel_order', roles: ['admin']};
mudra.update_permission(params, function(callback) {
console.log(response);
});
```
```javascript
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);
});
```
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
```javascript
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);
});
```