or to

redirect(URL('user', args='login'))

or to

redirect(URL('user/ogin'))


On Wednesday, 15 August 2012 08:57:20 UTC-5, Carl wrote:
>
> Found this code very useful! Udi's time has saved me so much time.
>
> One minor change I made was to user() function in default.py.
> The redirect() calls parameters:
>
> change 
> redirect(URL('user', 'login')) 
> to
> redirect(URL(f='user', args=['login',]))
>
>
>
>
> On Wednesday, 4 April 2012 06:49:46 UTC+1, Udi Milo wrote:
>>
>> It took a while to figure out, but this is my version on how to use 
>> linkedIn in web2py,
>> comments are much appreciated. (its very detailed and intended for people 
>> that are just starting out like me)
>>
>> Enjoy!
>>
>> first thing, go to linkedIn.com and get your key and secret.
>> after getting it:
>>
>> *1. add linkedIn.py and model.py to Modules from the python-linkedin lib*
>> *2. add the linkedinAccount.py to modules. modify it to look like:*
>>
>> from gluon.http import HTTP
>> try:
>>     import linkedin
>> except ImportError:
>>     raise HTTP(400,"linkedin module not found")
>>
>> class LinkedInAccount(object):
>>     def __init__(self,request,session,key,secret,return_url):
>>         self.request = request
>>         self.session = session
>>
>>         if self.session.linkedin is None:
>>             self.session.verified = False
>>             self.session.linkedin = 
>> linkedin.LinkedIn(key,secret,return_url, gae=True)
>>             self.session.linkedin.request_token()
>>
>>     def verify(self, verifier):
>>         self.session.verified = verifier and 
>> self.session.linkedin.access_token(verifier = verifier)
>>         return self.session.verified
>>
>>     def login_url(self, next="/"):
>>         return self.session.linkedin.get_authorize_url()
>>
>>     def logout_url(self, next="/"):
>>         self.session.linkedin = None
>>         return next
>>
>>     def get_user(self):
>>         if self.session.verified:
>>             profile = self.session.linkedin.get_profile(fields=['id', 
>> 'first-name', 'last-name','picture-url','industry'])
>>             return dict(first_name = profile.first_name,
>>                         last_name = profile.last_name,
>>                         picture_url = profile.picture_url,
>>                         industry = profile.industry,
>>                         username = profile.id)
>>
>> *3. add the following to your dal.py*
>>
>> ## LinkedIn
>>
>> auth.settings.actions_disabled=['register','change_password','request_reset_password','retrieve_username']
>> from linkedinAccount import LinkedInAccount
>> auth.settings.login_form=LinkedInAccount(
>>     request,
>>     session,
>>     KEY,
>>     SECRET,
>>     'http://' + request.env.http_host + '/user/verify')
>>
>> and just above "auth.define_tables()" add this:
>>
>> ## create custom field 'username' for linkedin authentication
>> auth.settings.extra_fields['auth_user']= [
>>     Field('username', writable=False, readable=False),
>>     Field('picture_url', writable=False, readable=False),
>>     Field('industry', writable=False, readable=False),
>> ]
>>
>> *4. add the following to your default.py, the user function (clear is a 
>> debug tool, in case your session expires or you play with it and you need 
>> to remove it)*
>>
>> def user():
>>     if len(request.args)>0 and request.args(0)=='verify':
>>         auth.settings.login_form.verify(request.vars.oauth_verifier)
>>         redirect(URL('user', 'login'))
>>
>>     if request.args(0)=='clear':
>>         session.linkedin = None
>>         return 'clean'
>>
>>
>>

-- 



Reply via email to