我尝试使用sails js实现基于角色的身份验证并使用node_acl中间件。以前有人试过吗?我从acl文档中看到的是
//Using the mongodb backend
acl = new acl(new acl.mongodbBackend(dbInstance, prefix));
如何从SailsJs
获取dbInstance
对象
答案 0 :(得分:0)
我只是在尝试相同的事情(不确定其中的优点),我设法使用MongoDB驱动程序进行连接。
你必须
npm install mongodb --save
然后,假设您的config/connections.js
中包含以下适配器信息:
MyMongo: {
adapter: 'sails-mongo',
host: 'localhost', // defaults to `localhost` if omitted
port: 27017, // defaults to 27017 if omitted
user: '', // or omit if not relevant
password: '', // or omit if not relevant
database: 'someDB' // or omit if not relevant
},
您现在可以执行以下操作:
var node_acl = require('acl');
var MongoClient = require('mongodb').MongoClient;
var dbInstance = "mongodb://"+sails.config.connections.MyMongo.host+":"+
sails.config.connections.MyMongo.port+"/"+sails.config.connections.MyMongo.database;
MongoClient.connect(dbInstance, function(error, db) {
//check for errors...
var mongoBackend = new node_acl.mongodbBackend(db, 'acl_');
var acl = new node_acl( mongoBackend );
acl.allow('role', 'model', 'action'); // Now you can do this...
}
我希望这会有所帮助。请注意,我添加了acl_
前缀,因此ACL生成的所有集合都可以从带有风帆的模型使用的其他集合中识别出来。