Есть ли какая-либо функция для выполнения действия входа в CKAN без вызова API

#python #ckan

#python #ckan

Вопрос:

В идеале, как работает вход в CKAN в соответствии с who.ini конфигурацией и кодом:

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

Здесь login_handler_path отвечает за вход в систему, а на интерфейсной стороне CKAN он отправляет POST-запрос к /login_generic конечной точке с name именем пользователя и password .

Прямо сейчас я пытаюсь создать один плагин, в котором я пытаюсь войти в систему через сам плагин (с некоторой функцией) без необходимости входа пользователя через какую-либо форму во внешнем интерфейсе.

Итак, есть ли какая-либо вспомогательная функция / функция действия, которую я могу использовать, чтобы я мог войти за кулисы в самом плагине CKAN.

Я понимаю, что CKAN использует некоторые заголовки файлов cookie / API для репозиции, чтобы определить, вошел ли пользователь в систему или нет. Если я использую обычные POST-запросы в коде python, я не смогу установить эти файлы cookie или переменные среды, и если я попытаюсь сделать это вручную, я боюсь, что это что-то сломает.

Любая помощь приветствуется

Ответ №1:

Если я правильно понял ваш вопрос, я думаю, вам следует попытаться использовать IAuthFunctions для переопределения встроенной аутентификации CKAN. Этот интерфейс позволяет интегрировать пользовательские методы аутентификации в CKAN.

Комментарии:

1. Привет @Zoran Pandovski, скажем, я хочу добавить reCAPTCHA на страницу входа в систему, могу ли я реализовать это с identify() помощью in IAuthFunctions ? Спасибо!