[mod_python] Session Tracking

David Fraser davidf at sjsoft.com
Fri Apr 4 08:21:06 EST 2003


Ron Wills wrote:

> Hello All
>
> ~  There's something that I can't seem to find the in the docs. Currently
> I have a set of PHP libs that I use, but was hoping to port my
> authenication classes to mod_python. This could simplify things for me,
> but I can seem to find anything to do session tracking (with cookies or
> so on). Any help would be appretiated.
>
I've just done this for our application for mod_python.
Basically we use the getcookie and setcookie functions below to get and 
set the cookie
Then we have session objects, each of which has a unique session string, 
which is set in the cookie.
We have a global sessioncache dictionary that looks up a session object 
based on the session string.
We also use this for handling user login etc, so its a bit more 
complicated, but that's the basic
idea and you should be able to use the same idea.

When doing this, I was wondering whether some cookie methods could be 
added to the request object,
since that's where they seem to belong? Could pass in the class of 
cookie you want to use etc...
Any thoughts?

David

def getcookie(req):
  """Reads in any cookie info from the request"""
  try:
    cookiestring = req.headers_in["Cookie"]
  except:
    cookiestring = {}
  cookie = Cookie.SimpleCookie()
  cookie.load(cookiestring)
  cookiedict = {}
  for key, morsel in cookie.iteritems():
    cookiedict[key] = morsel.value
  return cookiedict

def setcookie(req, cookiedict):
  """Puts the bits from the cookiedict into Morsels, sets the req cookie"""
  # construct the cookie from the cookiedict
  cookie = Cookie.SimpleCookie()
  for key, value in cookiedict.iteritems():
    cookie[key] = value
  # add the cookie headers to req.headers_out
  for key, morsel in cookie.iteritems():
    req.headers_out.add('Set-Cookie', morsel.OutputString())






More information about the Mod_python mailing list