首页 > 解决方案 > 是否有任何功能可以在没有 API 调用的情况下在 CKAN 中执行登录操作

问题描述

who.ini 理想情况下,根据配置代码在 CKAN 中登录的工作方式是:

[plugin:friendlyform]
use = ckan.lib.repoze_plugins.friendly_form:FriendlyFormPlugin
login_form_url= /user/login
login_handler_path = /login_generic

这里login_handler_path负责登录,在 CKAN 的前端,它/login_genericname用户名和password.

现在我正在尝试创建一个插件,我试图通过插件本身(具有某些功能)登录,而无需用户通过前端的任何表单登录。

那么是否有任何我可以使用的帮助程序/操作功能,以便我可以在 CKAN 插件本身的幕后登录。

我的理解是 CKAN 使用一些repoze cookie / API Headers来识别用户是否登录。如果我在 python 代码中使用正常的 POST 请求,那么我将无法设置这些 cookie 或环境变量,如果我尝试手动执行,那么我担心它会破坏某些东西。

任何帮助深表感谢

标签: pythonckan

解决方案


如果我正确理解了您的问题,我认为您应该尝试使用IAuthFunctions来覆盖 CKAN 的内置身份验证。此接口允许将自定义身份验证方法集成到 CKAN 中。


推荐阅读