Main concepts
Cookie Group
Cookie Group model represents a group of related cookies. For all but
required cookie groups, user gives consent or decline their use.
Versions
Each Cookie Group has current version that is timestamp when last cookie
is added. When user accept cookie group, current version is saved in
cookie_consent
cookie.
Versions allows django-cookie-consent app
to know if new cookies have been introduced since user given a consent for
specific cookie use and to ask them to re-accept new cookies when needed.
Important attributes:
varname
Variable name that will be used for this cookie group.
is_required
Required cookies are not deleted and user cannot affect them.
This could be sessionid
, csrftoken
and others.
Without this cookies website will not work properly and user can’t opt-out.
is_deletable
If cookie group is deletable, django-cookie-consent will try
to delete cookies in this group when declined or through
CleanCookiesMiddleware
middleware.
Cookie
Cookie model represent each cookie.
Note that domain
and path
attributes are important for deleting
cookies.
Saving user selection
User selection regard cookie use are saved in a cookie with default name
cookie_consent
.
Example of cookie_consent
value could be:
optional=-1|social=2013-06-04T03:17:01.421395
In above example user declined cookie group with optional
varname
and accepted cookie group social
with all cookies created before
stated timestamp.
Caching
To avoid hitting database for each request, non required
cookies and cookie groups are cached.