access-manager
A one-stop solution for implementing authenticated and anonymous sessions with user handling and whitelisted ACL. Attaches itself to an express app as a middleware.
Install
$ npm install access-manager
Examples:
const AccessManager = require('access-manager');
const accessManager = new AccessManager({
mongoose: mongoose,
expressApp: app,
aclImport:{
file: '',
run: process.argv.includes('--import-acl-from-json')
},
userSchema: {
firstName: {type: String, required:true},
lastName: {type: String, required:true},
email: {type: String, required:true, unique:true},
password: {type: String, required:true},
roles: [String]
}
});
const User = accessManager.models.user;
app.post('/register', async (req, res)=>{
let user = await new User(req.body);
await user.save();
res.json({msg:'Registered'});
});
app.post('/login', async (req, res)=>{
if(passwordsMatch){
req.session.user = user._id;
req.session.loggedIn = true;
await req.session.save();
res.json({msg:'Logged in'});
}else{
res.json({msg:'Failed login'});
}
});
app.all('/logout', async (req, res)=>{
req.user = {};
req.session.loggedIn = false;
await req.session.save();
res.json({msg:'Logged out'});
});
app.get('/messages', async (req, res)=>{
res.json({msg:'Here are your messages'});
});