2

我正在考虑使用 Algolia 的 Secured API Keys 功能将我的用户的查询限制在特定的地理区域(例如,他们家附近 50 英里)。这个想法是用户不应该能够搜索整个系统,只能搜索与他们相关的部分,从而限制了数据库的整体公开。API 是否支持这样的事情,或者我是否需要使用标记功能来做一些不太具体的事情,例如,按用户的家乡(“纽约”)标记记录,然后根据该标记限制访问?

4

1 回答 1

3

您应该能够通过为每个用户生成具有预填充搜索参数的特定 API 密钥来做到这一点。

每个键都有一个特定的 around lat lng 参数和一个特定的半径。

用户将无法欺骗密钥以使用不同的预填充搜索参数。但是您仍然可以使用不同的参数(未预填充)。

首先,您需要在仪表板中创建一个新的仅搜索 API 键。

然后,例如使用 JavaScript (node.js) 客户端:

var public_key = client.generateSecuredApiKey('YourSearchOnlyApiKey', {aroundLatLng: '43.0909,23.99898', aroundRadius: 50 * 1000});

然后在前端,在浏览器中,使用这个新的 api 密钥,您的用户将只能搜索提供的纬度经度周围 50 公里半径的项目。

您可以使用任何地理搜索参数https://www.algolia.com/doc/rest#geo-search-parameters

更多信息:

每个其他 API 客户端都有相同的段落。

于 2016-01-05T09:30:52.460 回答