4.7.3 Examples

##
4.7.3 Examples

This example sets a simple cookie which expires in 300 seconds:

    from mod_python import Cookie, apache
    import time

    def handler(req):

        cookie = Cookie.Cookie('eggs', 'spam')
        cookie.expires = time.time() + 300
        Cookie.add_cookie(req, cookie)

        req.write('This response contains a cookie!\n')
        return apache.OK

This example checks for incoming marshal cookie and displays it to the client. If no incoming cookie is present a new marshal cookie is set. This example uses "`secret007`" as the secret for HMAC signature.

    from mod_python import apache, Cookie

    def handler(req):

        cookies = Cookie.get_cookies(req, Cookie.MarshalCookie,
                                        secret='secret007')
        if cookies.has_key('spam'):
            spamcookie = cookies['spam']

            req.write('Great, a spam cookie was found: %s\n' \
                                          % str(spamcookie))
            if type(spamcookie) is Cookie.MarshalCookie:
                req.write('Here is what it looks like decoded: %s=%s\n'
                          % (spamcookie.name, spamcookie.value))
            else:
                req.write('WARNING: The cookie found is not a \
                           MarshalCookie, it may have been tapered with!')

        else:

            # MarshaCookie allows value to be any marshallable object
            value = {'egg_count': 32, 'color': 'white'}
            Cookie.add_cookie(req, Cookie.MarshalCookie('spam', value, \
                              'secret007'))
            req.write('Spam cookie not found, but we just set one!\n')

        return apache.OK