我正在制作一个JavaScript客户端,该客户端使用ckan.js api从ckan读取数据。 当访问不需要身份验证的数据时,这种方法就可以很好地工作。
我看到如果提供API密钥,便可以进行经过身份验证的调用。但是,如何从javascript进行身份验证/登录,以便可以获取API密钥? 在文档中说
在调用需要授权的API函数时,必须通过在HTTP请求中提供API密钥来对自己进行身份验证。要找到您的API密钥,请使用其Web界面登录CKAN网站并访问您的用户个人资料页面。” http://docs.ckan.org/en/latest/api/#authentication-and-api-keys
似乎我必须手动登录才能获得API密钥。
这不能正常工作,因为我正在制作的javascript客户端未使用ckan界面。
有没有人提示如何解决这个问题?
答案 0 :(得分:0)
当前,对CKAN API进行身份验证使用的唯一内置机制是通过API密钥。这意味着您的客户端用户将需要向您的客户端提供其API密钥。用户可以通过Web UI登录CKAN并访问其个人资料来获取其API密钥。取决于客户端的安全上下文,客户端可以存储该API密钥,以便用户不必一直重新输入密钥。
CKAN允许您使用插件来自定义身份验证,因此可以实现其他身份验证方案。但是,这些仅适用于已安装并启用相应插件的CKAN实例。
例如,ckanext-oauth2支持通过OAuth2进行身份验证。但是,我没有使用该插件的经验,也不知道它是否还支持OAuth2身份验证用于API调用或仅支持Web UI。