生成将用户限制在特定半径的安全密钥

时间:2016-01-04 18:57:18

标签: algolia

我正在考虑使用Algolia的安全API密钥功能来限制我的用户和#39;查询特定地理区域(例如,在其本地位置周围50英里)。这个想法是用户不应该能够搜索整个系统,只能搜索与它们相关的部分,从而限制数据库的整体暴露。 API是否支持这样的内容,或者我是否需要使用标记功能来执行不太具体的操作,例如,根据用户的家乡状态标记记录("纽约")然后限制基于该标签访问?

1 个答案:

答案 0 :(得分:3)

您应该可以通过为每个用户生成具有预填充搜索参数的特定API密钥来实现此目的。

每个键都有一个特定的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客户端都有相同的段落。