Trying to set up a new user via script, and as usual it isn't going smoothly.  web2py 2.15.4, fronted by nginx
Using adduser script, which I think I got from this group (or maybe from a pointer Massimo provided):
"""
import gluon.tools
auth = session.auth
db   = session.db
new_user = auth.register_bare(email='easy...@example.com', password='4mark2easy')
print (new_user)
if new_user:
  new_user.update_record(registration_key='') # This approves the registration - can be done later
db.commit()
print (other_stuff_from_auth)
 This successfully adds a new user, but when  the new user tries to login, more times than not the result is "invalid login".  (The login form is the out-of-the-box one via 
default/user.)  Sometimes, it works on the first try.
Q1:  Why does the login often fail?
The script doesn't update an existing user; 
register_bare() and its underwiring check for newness (as in 
!IS_IN_DB()), so it doesn't work as a reset password tool.  The reset-password-email technique doesn't work here, because not all of these users have valid email addresses.  I can use port forwarding to use 
appadmin, but the server command line is easier in this setup.
Q2:  Is there an easy way to script resetting a user's password?  
Some of these accounts should only be used on a short-term basis.  I can manually reset the password, or delete the user, but I'd like a failsafe mechanism in case I forget:
Q3:  Is there a way to automatically expire a password?
I have a function with the 
@request.restful() decorator; it should require login as well.
Q4: Can I use 
@auth.requires_login() with 
@request.restful()Thanks.
Dave
/dps