At first I struggled with OpenId myself, using the python-openid lib. It did cost me several nerves and reading many other implementations was necessary before I understood the inner workings. But now I do - it was worth it, and I got a simple login working. Then I wanted to combine it with web2py's auth mechanisms -- when I realised that web2py already has such, in contrib/login_methods. Well...
Unfortunately, the above mentioned issues stop the show. So, I would like to debug that module and am currently stuck in understanding the DAL, *sigh* Sources are sparsely documented. The exception throws in method `represent()'. What does it do? I am planning to read through the sources from bottom to top, following the backtrace. Considering success, I also would like to extend that module. OpenId also allows to query the provider about some information about the user (called attribute exchange), like name, email address (user is asked, of course, if she allows to disclose these). It would be nice if web2py's openid module would also have this feature. Any help here is greatly appreciated. :) KR, drebbin