要实现这一点,您需要更改集合名称的分配
module.context.collectionName('nameOfCollection')
到
'nameOfCollection'
在所有文件中,因为
module.context.collectionName
在字符串前面加上服务名
所以
J.
const sessions = 'sessions';
const users = 'users';
索引文件
const users = db._collection('users');
const sessions = sessionsMiddleware({
storage: 'sessions',
transport: 'cookie'
});
但是,当更多的服务需要访问同一基础集合(例如,一个服务的拆卸可以删除其他服务的集合)时,这种方法是反模式的。
在这种情况下,你应该利用
dependencies
只有您的身份验证服务才有权访问自己的集合,其他服务应该有身份验证服务作为依赖项,并通过身份验证服务访问身份验证数据。
认证服务需要
在manifest.json中
"provides": {
"myauth": "1.0.0"
}
在index.js或您指向的文件中
main
在manifest.json中
module.exports = {
isAuthorized (id) {
return false; // your code for validating if user is authorized
}
};
消费服务需要有
在manifest.json中
"dependencies": {
"myauth": {
"name": "myauth",
"version": "^1.0.0",
"description": "Auth service.",
"required": true
}
}
然后你就可以注册并调用它
const myauth = module.context.dependencies.myauth;
if (myauth.isAuthorized()) {
// your code
} else {
res.throw(401);
}
有关请求授权的进一步步骤,请检查如何使用
Middleware
和
Session middleware
神速