1

我正在尝试访问本地 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);
    })

这是通过套接字的错误:未处理的错误:错误:不允许未经身份验证的连接。

我的问题:为什么只有在我通过身份验证后才能找到?我什么时候定义了默认规则?我在这里想念什么。

4

1 回答 1

1

我想到了!

如果您希望未经身份验证的用户可以使用集合,您必须执行以下操作。

1) 您与 Horizo​​n 的连接

const _horizon = Horizon({
   authType: 'unauthenticated'
});

2) 权限

[groups.default.rules.read_public_profile]
template = "collection('developerProfiles').find({id: any()})"

3)身份验证设置(我错过了什么)

allow_unauthenticated: true
于 2016-09-08T21:23:48.000 回答