I'm evaluatind multiple logins using the normal auth form + janrain in web2py 1.99.4 It's working almost as I was expecting, but when I do the following steps:
1) login with janrain (in my case using google) 2) I'm sucessfully logged in my app. I go to /myap/default/user/change_password and cannot change my pass because I don't have one yet to fill the "old password" field. 3) I got to appadmin and setup a pass for my user 4) I logout and login using my email/pass in auth form. It works 5) Now I logout and login using janrain and my previous password was blanked I try to debug it and found that in step 5 the pass is being blanked in gluon/tools.py: def get_or_create_user(self, keys): (...) if user: print table_user, keys user.update_record(**table_user._filter_fields(keys)) (...) I added a print statement and it gives me: auth_user {'first_name': u'Ricardo', 'last_name': u'Pedroso', 'registration_id': u'https://www.google.com/profiles/....', 'password': None, 'registration_key': '', 'email': u'em...@example.com'} Note that the 'registration_id' and 'email' fields are not the ones I get, I just edit them to post here. The field that matters for this case is the 'password': None. Is where my pass is being blanked, right? Can this be avoid? Does it makes sense to popup the password field if it's None from the dict? A more general question, does it make sense to use auth form+janrain? The code I'm using that is different from the scaffold app: models/db.py: -------------------- (....) auth.define_tables() from gluon.contrib.login_methods.rpx_account import RPXAccount from gluon.contrib.login_methods.extended_login_form import ExtendedLoginForm other_form = RPXAccount(request, api_key='mykey', domain='mydomain', url = "http://localhost:8000/%s/default/user/login" % request.application) auth.settings.login_form = ExtendedLoginForm(auth, other_form, signals=['token']) (...) ----------------------------------------------------------------------------------------------------------------------- Regards, Ricardo