首页 > 解决方案 > 从 JavaScript 验证/登录到 CKAN

问题描述

我正在制作一个使用 ckan.js api 从 ckan 读取数据的 javascript 客户端。这在访问不需要身份验证的数据时工作得很好。

我发现如果我提供 API 密钥,我可以进行经过身份验证的调用。但是如何从 javascript 进行身份验证/登录以便获取 API 密钥?在文档中说

调用需要授权的 API 函数时,您必须通过在 HTTP 请求中提供 API 密钥来验证自己。要查找您的 API 密钥,请使用其 Web 界面登录 CKAN 站点并访问您的用户个人资料页面。” http://docs.ckan.org/en/latest/api/#authentication-and-api-keys

看来我必须手动登录才能获取 API 密钥。

这将不起作用,因为我正在制作的 javascript 客户端没有使用 ckan 接口。

有没有人有关于如何解决这个问题的提示?

标签: ckan

解决方案


目前,CKAN API 认证使用的唯一内置机制是通过 API 密钥。这意味着您的客户端用户需要向您的客户端提供他们的 API 密钥。用户可以通过 Web UI 登录 CKAN 并访问他们的个人资料来获取他们的 API 密钥。根据客户端的安全上下文,客户端可能会存储该 API 密钥,这样用户就不必一直重新输入他们的密钥。

CKAN 允许您使用插件自定义身份验证,因此可以实现其他身份验证方案。但是,这些仅适用于安装并启用了相应插件的 CKAN 实例。

例如,ckanext-oauth2支持通过 OAuth2 进行身份验证。但是,我没有使用该插件的经验,也不知道它是否还支持 API 调用的 OAuth2 身份验证,或者仅支持 Web UI。


推荐阅读