2016-09-22 3 views
3

Самый эффективный способ управления списками контроля доступа в .Список контроля доступа в Алголии Поиск в списке

У нас есть списки элементов, но мы не хотим использовать глобальный список. Наша листинг зависит от отдельных пользователей.

Наше приложение имеет логику ACL - можем ли мы согласовать эту логику доступа с Algolia?

ответ

7

Лучший способ справиться с этим - сохранить все записи (перекрестные пользователи) в одном индексе и пометить их отдельными идентификаторами пользователей.

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

Затем на поиске время, используйте Обеспеченные API ключи ограничить поиск определенного идентификатора пользователя. Это безопасное решение, которое вы можете использовать в своем 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

Смежные вопросы