Actually, I still want email verification to happen (because someone else may stumble upon the link and register with a password unknown to the real user).
Nevertheless, I disabled registration verification, and now I get an error deep within gloun/tools.py Error occurs after entering password and submitting the form. (same error with your and Massimo's version of the solution): File "/home/ubuntu/web2py/gluon/tools.py", line 1683, in register user = self.db(table_user[username] == form.vars[username]).select().first() KeyError: 'email' Maybe making table_user.email.writable=False prevents auth.register() from creating a new table entry for the new user??? Again, for reference, the (essential) code: def user(): if request.args(0)=='register': registrant = db( db.registrant.token == request.vars.token ).select().first() auth.settings.registration_requires_verification = False db[auth.settings.table_user_name].email.writable=False db[auth.settings.table_user_name].email.default=registrant.email # this causes same error # auth.settings.table_user.email.default = registrant.email # auth.settings.table_user.email.writable=False form=auth.register() return dict(form=form) return dict(form=auth())