4 def unique_id(cookie_key
):
6 Find out if remote caller has cookie set on the key.
7 If not, set cookie on client side: evaluate this key by a random string.
8 ( unique user identifier )
9 In both scenarios return value of the cookie, be it old or newly set one
12 ## try to retrieve uid from Cookie
13 if 'HTTP_COOKIE' in os
.environ
:
14 ## parse os.environ['HTTP_COOKIE']
15 cookies
= os
.environ
['HTTP_COOKIE'].split(';')
16 key
= '%s=' % cookie_key
17 uid_cookies
= [c
for c
in cookies
if c
.strip().startswith(key
)]
20 assert(len(uid_cookies
) == 1)
21 uid_cookie
= uid_cookies
[0]
22 uid
= uid_cookie
.replace(key
, '')
25 uid
= str(random
.random())[2:16] # random string of 14 digits
26 set_cookie_statement
= 'Set-Cookie:%s=%s;' % (cookie_key
, uid
)
27 set_cookie_statement
+= 'expires=Thu, 26-Dec-2013 22:03:25 GMT;'
28 print set_cookie_statement