Authentication 在plone站点上成功注册后立即登录

Authentication 在plone站点上成功注册后立即登录,authentication,plone,zope,z3c.form,Authentication,Plone,Zope,Z3c.form,我有一个自定义注册浏览视图,您必须在其中扩展一些用户数据(z3c.form和一些字段,包括密码)。成功保存这些数据后,我希望用户自动登录并重定向到站点中的其他页面 提前感谢您的提示如果您想为新成员扩展userdata,并向注册表中添加新字段,那么最好扩展提供默认userdata架构的实用程序,并以无缝连接到现有注册机制的方式进行扩展 有一个示例产品collective.examples.userdata,您可以为此使用0和扩展它。它还有很好的文档,向您解释了所有必要的步骤 因此,以下是我的工作解

我有一个自定义注册浏览视图,您必须在其中扩展一些用户数据(z3c.form和一些字段,包括密码)。成功保存这些数据后,我希望用户自动登录并重定向到站点中的其他页面


提前感谢您的提示

如果您想为新成员扩展userdata,并向注册表中添加新字段,那么最好扩展提供默认userdata架构的实用程序,并以无缝连接到现有注册机制的方式进行扩展

有一个示例产品collective.examples.userdata,您可以为此使用0和扩展它。它还有很好的文档,向您解释了所有必要的步骤


因此,以下是我的工作解决方案(感谢mikko指出了正确的方向):

  • 在PAS中验证您的注册凭据

    member = portal.acl_users.authenticate(username, password, portal.REQUEST)
    
  • 对于重定向,有必要设置身份验证cookie。您可以通过“updateCredentials”实现这一点(请参阅pas/plugins/cookie\u处理程序)

  • 重定向到下一页

    portal.REQUEST.RESPONSE.redirect(url)
    

  • 以下是如何在Python代码中执行登录的技巧:这不是petschki的要求;他在问,在成功注册后,用户如何能够立即登录。对不起,我不同意否决票。stackoverflow的否决票规则说:“当你遇到一篇极其草率、不费力气的帖子,或者一个明显而且可能危险地错误的答案时,使用你的否决票。”。“对问题的误解”在我看来既不草率也不危险。一句评论就足够了。
    portal.REQUEST.RESPONSE.redirect(url)