I am not familiar with facebook email.

If this (username + @facebook) is avlid email, perhaps web should set
that even if username=True

On Jun 6, 7:15 pm, "Sebastian E. Ovide" <sebastian.ov...@gmail.com>
wrote:
> I do not see major pros and cons... it is a matter of precerences...
>
> 1) setting username=True in auth.define_tables(), define_tables will add a
> field on the table (username) and if that field is present, authentication
> will be done using username. Personally I prefer to use emails rather than
> usernames, and as I am using BOTH web2py auth and facebook at the same  time
> for authentication (two different links for different logins), I didn't want
> to force my application to use usernames.... so I've used the second option
>
> 2) in this case I'm adding an email created by the facebook username +
> @facebook and therefore auth will keep using email for authentication...
>
> no web2py code has been touched, although I'm extending Auth and
> overriding navbar to display a second login link (facebook) and hide
> change_password when it is logged in via facebook.
>
>             if session.login_method_used is None:
>                 if not 'change_password' in self.settings.actions_disabled:
>                     bar.insert(-1, ' | ')
>                     bar.insert(-1, password)
>
> and in my controller:
>
> def user():
>     if auth.user_id:
>         if request.args[0] == 'logout':
>             session.login_method_used=None
>     else:
>         if request.args[0] == 'login':
>             session.login_method_used=None
>         elif request.args[0] == 'login_fb':
>             session.login_method_used="facebook"
>             request.args[0]='login'
>
>     if session.login_method_used=="facebook":
>         auth.settings.login_form=FaceBookAccount(globals())
>
>     return dict(form=auth())
>
> On Mon, Jun 6, 2011 at 11:16 PM, Massimo Di Pierro <
>
>
>
>
>
>
>
>
>
> massimo.dipie...@gmail.com> wrote:
> > if there is agreement on one, please send me a patch.
>
> > On Jun 6, 4:31 pm, "Sebastian E. Ovide" <sebastian.ov...@gmail.com>
> > wrote:
> > > Hi Mic,
>
> > > thanks for that.
>
> > > actually I've debugged web2py and figure it out for myself. There are two
> > > easy ways to fix it (I've tried to add them to the book, but my account
> > > doesn't allow me to edit it)
>
> > > 1) set username=False in auth.define_tables()
> > > 2) add  email = user['username']+"@facebook.com" in the return of def
> > > get_user
>
> > > On Mon, Jun 6, 2011 at 10:02 PM, Michele Comitini <
>
> > > michele.comit...@gmail.com> wrote:
> > > > Hi Sebastian,
>
> > > > copy from this example:
>
> > > >http://code.google.com/r/michelecomitini-facebookaccess/source/browse.
> > ..
>
> > > > <
> >http://code.google.com/r/michelecomitini-facebookaccess/source/browse..
> > .>and
> > > > let me know
>
> > > > mic
>
> > > > 2011/6/6 Sebastian E. Ovide <sebastian.ov...@gmail.com>
>
> > > > Hi All,
>
> > > >> just wondering if the section "OAuth2.0 and Facebook" of the book is
> > up to
> > > >> date?
>
> > > >> I following it's instructions but I'm getting an "Internal error"
>
> > > >> to reproduce
>
> > > >> 1) get last web2py 1.196.3
> > > >> 2) follow the instructions from the book
> > > >> 2.a) get facebook and place it in modules
> > > >> 2.b) copy the code from the book
> > > >> 2.c) replace "from facebook import GraphAPI" with "facebook =
> > > >> local_import('facebook')"
> > > >> 2.d) replace facebook. to GraphAPIError and GraphAPI
> > > >> 2.e) replace YOUR_CLIENT_ID and YOUR_CLIENT_SECRET with real data
> > > >> 3) set your app URL tohttp://localhost:8000/welcome/
>
> > > >> Is something missing ?
>
> > > >> When I click login, it redirect me to facebook, where I can login, and
> > > >> then it redirects me tohttp://localhost:8000/welcome/
>
> > > >> At that point I get an error:
>
> > > >>  TRACEBACK
>
> > > >> 1.
> > > >> 2.
> > > >> 3.
> > > >> 4.
> > > >> 5.
> > > >> 6.
> > > >> 7.
> > > >> 8.
> > > >> 9.
> > > >> 10.
> > > >> 11.
> > > >> 12.
> > > >> 13.
> > > >> 14.
> > > >> 15.
> > > >> 16.
>
> > > >> Traceback (most recent call last):
>
> > > >>   File "/home/sebas/Downloads/web2py/gluon/restricted.py", line 184,
> > in restricted
>
> > > >>     exec ccode in environment
>
> > > >>   File
> > "/home/sebas/Downloads/web2py/applications/welcome/controllers/default.py" <
> >http://localhost:8000/admin/default/edit/welcome/controllers/default.py>,
> > line 71, in <module>
>
> > > >>   File "/home/sebas/Downloads/web2py/gluon/globals.py", line 137, in
> > <lambda>
>
> > > >>   /  self._caller = lambda f: f()
>
> > > >>   File
> > "/home/sebas/Downloads/web2py/applications/welcome/controllers/default.py" <
> >http://localhost:8000/admin/default/edit/welcome/controllers/default.py>,
> > line 33, in user
>
> > > >>     return dict(form=auth())
>
> > > >>   File "/home/sebas/Downloads/web2py/gluon/tools.py", line 1070, in
> > __call__
>
> > > >>     return getattr(self,args[0])()
>
> > > >>   File "/home/sebas/Downloads/web2py/gluon/tools.py", line 1626, in
> > login
>
> > > >>     user =
> > self.get_or_create_user(table_user._filter_fields(cas_user))
>
> > > >>   File "/home/sebas/Downloads/web2py/gluon/tools.py", line 1360, in
> > get_or_create_user
>
> > > >>     user = self.db(table_user[username] ==
> > keys[username]).select().first()
>
> > > >> KeyError: 'email'
>
> > > >> any ideas , thanks
>
> > > >> --
> > > >> Sebastian E. Ovide
>
> > > --
> > > Sebastian E. Ovide
>
> --
> Sebastian E. Ovide

Reply via email to