Hi,
I want to try OpenID. I have found the following chapter in the book (rev.
4.9):

---------------------------------
OpenID

We have previously discussed integration with Janrain (which has OpenID
support) and that is the easiest way to use OpenID. Yet sometimes you do
not want to rely on a third party service and you want to access the OpenID
provider directly from the consumer (your app).

Here is an example:

from gluon.contrib.login_methods.openid_auth import OpenIDAuth
auth.settings.login_form = OpenIDAuth(auth)

OpenIDAuth requires the *python-openid* module to be installed separately.
Under the hood, this login method defines the following table:

db.define_table('alt_logins',
    Field('username', length=512, default=''),
    Field('type', length =128, default='openid', readable=False),
    Field('user', self.table_user, readable=False))

which stores the openid usernames for each user. If you want to display the
openids for the current logged in user:

{{=auth.settings.login_form.list_user_openids()}}

---------------------------------


I created a new application and I added this line at the top of db.py

from gluon.contrib.login_methods.openid_auth import OpenIDAuth

This line is at the end:

auth.settings.login_form = OpenIDAuth(auth)

After starting the index-function I got the following error message:
<type 'exceptions.SyntaxError'> invalid table/column name "type" is a "ALL"
reserved SQL keyword
Version
  web2py™ (2, 3, 2, datetime.datetime(2012, 12, 19, 11, 52, 16), 'dev')
Python Python 2.7.3: D:\Python27\python.exe
Traceback


1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.


Traceback (most recent call last):
  File "D:\dropbox\InfoSMS\web2py\gluon\restricted.py", line 212, in restricted

    exec ccode in environment
  File "D:/dropbox/InfoSMS/web2py/applications/logins/models/db.py"
<http://127.0.0.1:8000/admin/default/edit/logins/models/db.py>, line
88, in <module>

    auth.settings.login_form = OpenIDAuth(auth)

  File "D:\dropbox\InfoSMS\web2py\gluon\contrib\login_methods\openid_auth.py",
line 103, in __init__

    self._define_alt_login_table()
  File "D:\dropbox\InfoSMS\web2py\gluon\contrib\login_methods\openid_auth.py",
line 143, in _define_alt_login_table

    Field('user', self.table_user, readable=False),

  File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 7186, in define_table

    table = self.lazy_define_table(tablename,*fields,**args)

  File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 7203, in lazy_define_table

    table = table_class(self, tablename, *fields, **args)

  File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 7609, in __init__

    db.check_reserved_keyword(field_name)
  File "D:\dropbox\InfoSMS\web2py\gluon\dal.py", line 6930, in
check_reserved_keyword

    'invalid table/column name "%s" is a "%s" reserved SQL keyword' %
(name, backend.upper()))
SyntaxError: invalid table/column name "type" is a "ALL" reserved SQL keyword

 Error snapshot [image: help]

<type 'exceptions.SyntaxError'>(invalid table/column name "type" is a "ALL"
reserved SQL keyword)
Any comments?
Regards, Martin

-- 



Reply via email to