我正在尝试在我的本地Horizion服务器上访问未经过身份验证的集合。
这是我的schema.toml
[collections.developerProfiles]
[collections.users]
[groups.default.rules.read_public_profile]
template = "collection('developerProfiles').find({id: any()})"
[groups.authenticated.rules.store_message]
template = "collection('developerProfiles').store({id: any(), comments: any(), score: any()})"
[groups.default.rules.read_current_user]
template = "collection('users').find({id: userId()})"
以下是我提出请求的方式。
const ProfileCollection = _horizon('developerProfiles');
ProfileCollection.find({
id: 'someId'
}).fetch().subscribe(collection => {
console.log('collection', collection);
})
以下是通过套接字的错误:未处理的错误:错误:不允许未经身份验证的连接。
我的问题:为什么只有在我通过身份验证后才能找到工作?当我定义默认规则?我在这里错过了什么。
答案 0 :(得分:1)
我明白了!
如果您希望未经身份验证的用户可以使用该集合,则必须执行以下操作。
1)您与Horizon的连接
const _horizon = Horizon({
authType: 'unauthenticated'
});
2)权限
[groups.default.rules.read_public_profile]
template = "collection('developerProfiles').find({id: any()})"
3)验证设置(我缺少的)
allow_unauthenticated: true