Algolia 搜索列表中的访问控制列表
Access Control List in Algolia Search listing
在 algolia 中管理访问控制列表的最有效方法是什么。
我们有项目列表,但我们不想使用全局列表。我们的列表因个人用户而异。
我们的应用程序有一个 ACL
逻辑 - 我们能否使该访问逻辑与 Algolia 保持一致?
处理这个问题的最佳方法是将所有记录(跨用户)存储在一个索引中,并用单独的用户 ID 标记它们。
{ "objectID": 1, ....., "_tags": ["user_21"] }
{ "objectID": 2, ....., "_tags": ["user_21"] }
{ "objectID": 3, ....., "_tags": ["user_42"] }
然后在搜索时,使用 安全 API 键 将搜索限制为特定用户 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
在 algolia 中管理访问控制列表的最有效方法是什么。
我们有项目列表,但我们不想使用全局列表。我们的列表因个人用户而异。
我们的应用程序有一个 ACL
逻辑 - 我们能否使该访问逻辑与 Algolia 保持一致?
处理这个问题的最佳方法是将所有记录(跨用户)存储在一个索引中,并用单独的用户 ID 标记它们。
{ "objectID": 1, ....., "_tags": ["user_21"] }
{ "objectID": 2, ....., "_tags": ["user_21"] }
{ "objectID": 3, ....., "_tags": ["user_42"] }
然后在搜索时,使用 安全 API 键 将搜索限制为特定用户 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