The sign in handler performs all the checks necessary and returns a dictionary of variables to display to the user if the sign in was unsuccessful. You can us it like this:
import web.auth.handler.signIn
print web.header()
signInHandler = web.auth.handler.signIn.SignInHandler(manager=auth)
form = signInHandler.handle()
if form: # form needs displaying
print '<html><body><h1>Please Sign In</h1>%(form)s<p>%(message)s</p></body></html>'%form
else:
# We have just signed in, but we have not authorised the user
pass
Even though the user is authenticated and signed in, we have not yet authorised them.