访问控制列表在阿尔及利亚搜索列表

Access Control List in Algolia Search listing

本文关键字:列表 搜索 阿尔及利亚 访问控制列表      更新时间:2023-09-26

在algolia中管理访问控制列表最有效的方法是什么?

我们有项目列表,但我们不想使用全局列表。我们的清单因用户而异。

我们的应用程序有一个ACL逻辑-我们可以将访问逻辑与Algolia对齐吗?

处理这个问题的最佳方法是将所有记录(跨用户)存储在单个索引中,并用单个用户id标记它们。

{ "objectID": 1, ....., "_tags": ["user_21"] }
{ "objectID": 2, ....., "_tags": ["user_21"] }
{ "objectID": 3, ....., "_tags": ["user_42"] }

然后在搜索时,使用Secured API Keys将搜索限制为特定的用户ID。这是一个安全的解决方案,你可以从你的JavaScript代码中使用,确保你的用户只搜索他们有权访问的记录。

在后端:

// if the current user is ID=42
public_key = Algolia.generate_secured_api_key('<SearchOnlyAPIKeyKeptPrivate>', {filters: 'user_42'})

在你的前端:

var client = algoliasearch("APPID", '<PublicApiKeyGeneratedForUser42>');
index.search('.....');

您可以在这里阅读更多关于API密钥(特别是安全API密钥):https://www.algolia.com/doc/guides/security/api-keys