我可以在Jekyll Algolia中使用更具限制性的密钥吗?

时间:2019-05-19 03:41:54

标签: jekyll algolia api-key

我正在使用Algolia搜索建立我的Jekyll网站。

The documentation关于jekyll-algolia说必须在环境变量ALGOLIA_API_KEY中提供管理员密钥。

但是,关于API密钥安全性的another page

  

您的管理员API密钥是最重要的密钥:它可以完全控制您的所有索引和数据。管理员API密钥应始终保持安全。 D o NOT 释放给任何人,或者d oNOT 在任何应用程序中使用它,并始终创建一个限制性更强的新密钥。该API密钥几乎​​应专门用于生成其他(更受限制的)API密钥,然后将这些API密钥用于搜索和执行索引操作。

阅读第二页,我试图在Jekyll网站的CI版本中为jekyll-algolia使用更严格的密钥:

  

image

但是我仍然收到bundle exec jekyll algolia的投诉:

ibug@ubuntu:~/iBug.github.io$ ALGOLIA_API_KEY="0123456789abcdef0123456789abcdef" bundle exec jekyll algolia
Configuration file: /home/wsl/iBug.github.io/_config.yml
Processing site...
         AutoPages: Disabled/Not configured in site.config.

        Pagination: Complete, processed 1 pagination page(s)
       Jekyll Feed: Generating feed for posts
   GitHub Metadata: No GitHub API authentication could be found. Some fields may be missing or have incorrect data.
Extracting records...
Updating records in index iBug_website...
Records to delete: 428
Records to add:    420
 [✗ Error] Invalid credentials

 The jekyll-algolia plugin could not connect to your application ID using the
 API key your provided.

 Make sure your API key has access to your 14DZKASAEJ application.

 You can find your API key in your Algolia dashboard here:
    https://www.algolia.com/licensing

ibug@ubuntu:~/iBug.github.io$ echo $?
1

我该怎么做?还是必须在CI环境中提供管理员密钥?

1 个答案:

答案 0 :(得分:1)

允许使用jekyll-algolia进行索引所需的最小API密钥ACL为deleteIndexaddObjectdeleteObject和'editSettings'。

如果未设置这些ACL之一,则会出现如下错误:

  

[jekyll-algolia]错误:
  403:无法放入   https://APP_ID.algolia.net/1/indexes/your_folder/settings
  {“ message”:“此API密钥不允许使用的方法”,“ status”:403}(403)

对于您而言,错误消息表示您的应用程序ID未与您提供的API_KEY连接。

在Algolia仪表板中检查您的应用程序ID,并验证_config.yml中的algolia.application_id条目是否正确。

如果您提供了正确的application_id和她的API密钥之一,则它必须能够正常工作,否则这是阿尔戈利亚问题。