Немедленный вход после успешной регистрации на сайте Plone

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

Заранее спасибо за подсказки

2 ответа

Решение

Итак, вот мое рабочее решение (спасибо Микко, который указал в правильном направлении):

  1. аутентифицировать ваши регистрационные данные в PAS

    member = portal.acl_users.authenticate(username, password, portal.REQUEST)
    
  2. для переадресации необходимо установить куки аутентификации. Вы можете сделать это с помощью updateCredentials (см. Pas/plugins/cookie_handler)

    if member:
        portal.acl_users.updateCredentials(portal.REQUEST, portal.REQUEST.RESPONSE, username, password)
    
  3. перенаправить на следующую страницу

    portal.REQUEST.RESPONSE.redirect(url)
    

Если вы хотите расширить пользовательские данные для новых членов и добавить новые поля в форму регистрации, вероятно, лучше всего расширить утилиту, которая предоставляет схему пользовательских данных по умолчанию, и делать это таким образом, чтобы вы легко подключались к существующему механизму регистрации.,

Есть пример продукта colle.examples.userdata, который вы можете использовать 0 и расширить для этой цели. Он также имеет хорошую документацию, которая объясняет вам все необходимые шаги.

http://plone.org/products/collective.examples.userdata

Другие вопросы по тегам