O web2py providencia toda as páginas de interação básicas com o usuário, que podem ser acessadas pela função user. Essa função gera uma página diferente dependendo do argumento que recebe. Por exemplo, a página de login pode ser acessada por http://localhost:8000/seuapp/default/user/login.
A função user vem definida no controller default da aplicação welcome como:
def user():
"""
exposes:
http://..../[app]/default/user/login
http://..../[app]/default/user/logout
http://..../[app]/default/user/register
http://..../[app]/default/user/profile
http://..../[app]/default/user/retrieve_password
http://..../[app]/default/user/change_password
http://..../[app]/default/user/manage_users (requires membership in
use @auth.requires_login()
@auth.requires_membership('group name')
@auth.requires_permission('read','table name',record_id)
to decorate functions that need access control
"""
return dict(form=auth())
Cada URL do comentário da função apresenta uma página de usuário disponível. Além disso, o retorno é sempre um formulário definido pela função auth(). Essa função lê o argumento da página user e, a partir disso, gera um formulário específico baseado nas tabelas de usuário criadas previamente. Dessa forma, quando for chamada a página de login, a função auth() gerará um formulário de login, quando for chamada a página de registro, gerará um formulário de registro e assim por diante.
Confira a lista das principais páginas de usuário: