我已将Web2py设置为在注册时发送电子邮件验证,并且在使用以下设置进行验证之前不允许登录:
mail=auth.settings.mailer
mail.settings.server = 'smtp.gmail.com:587'
mail.settings.sender = 'my_email_address@gmail.com'
mail.settings.tls=True
mail.settings.login = 'my_email_address@gmail.com:my_gmail_password'
auth.settings.registration_requires_verification = True
auth.settings.registration_requires_approval = False
auth.settings.login_after_registration = False
正在发送电子邮件以重置密码,但不会进行注册。它也允许登录。
我不知道为什么?
这是我的注册表格代码:
def register():
form = SQLFORM(db.auth_user)
form.element('table').insert(-1,(T('Please confirm that you are not a machine :'),Recaptcha(request, PUBLIC_KEY, PRIVATE_KEY, options="theme:'white'"),''))
if form.process(onvalidation=lola).accepted:
session.flash = 'record inserted'
make_thumb(db.auth_user, form.vars.id,(250,250))
redirect(URL('login'))
return dict(form=form)
答案 0 :(得分:3)
如果您想要一些额外的注册功能,例如电子邮件验证,则需要使用内置的auth.register()
功能:
def register():
return dict(form=auth.register())
如果您需要在验证和表单接受上运行回调函数,可以使用auth.settings.register_onvalidation
和auth.settings.register_onaccept
指定它们。