#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()
помощью inIAuthFunctions
? Спасибо!