Changeset 4281

Show
Ignore:
Timestamp:
11/12/07 12:10:11 (1 year ago)
Author:
sylvain.hellegouarch
Message:

added cookies expected by amp.fm

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/nuxleus/Scripts/openid/gateway/openidgateway/__init__.py

    r4256 r4281  
    2424import pkg_resources 
    2525 
     26from Cookie import SimpleCookie 
     27 
     28# Thanks to WebOb source code :p 
     29def make_cookie_header(key, value='', expires=-1): 
     30    cookies = SimpleCookie() 
     31    cookies[key] = value 
     32    for var_name, var_value in [('max-age', max_age), ('path', path), 
     33                                ('domain', domain), ('version', 1), 
     34                                ('domain', 'http://dev.amp.fm'), 
     35                                (path, '/'), ('max-age', 1296000)]: # two weeks 
     36        cookies[key][var_name] = str(var_value) 
     37    if expires != -1: 
     38        cookies[key]['expires'] = expires 
     39    header_value = cookies[key].output(header='').lstrip() 
     40    return ('Set-Cookie', header_value)) 
     41         
    2642class OpenIdGateway(object): 
    2743 
     
    127143        info = consumer.complete(req.GET) 
    128144 
     145        cookies = [] 
    129146        if info.status == 'success': 
    130147            req.cookies['openid'] = req.params['identity'] 
    131148            guid = req.cookies.get('guid', str(uuid.uuid1())) 
     149            headers.append(make_cookie_header('openid.session', guid, expires=0)) 
     150            headers.append(make_cookie_header('openid', req.params['identity'])) 
    132151            params['status'] = 'complete' 
    133152            params['return_location'] = sess[self.ekey]['return_location'] 
    134153            params['message'] = 'Logged in as %s' % req.params['identity'] 
    135154        elif info.status == 'failure': 
     155            # Sylvain: I explicitely remove any existing cookie in case of a failure 
     156            headers.append(make_cookie_header('openid.session', expires=0)) 
     157            headers.append(make_cookie_header('openid', expires=0)) 
    136158            params['status']= 'failure' 
    137159            if info.identity_url: