A significant percentage of modern, interactive websites allow some form of user interaction-from allowing simple comments on a blog, to full editorial control of articles on a news site. If a site offers any sort of ecommerce, authentication, and authorization of paying customers is essential.
Just managing users-lost usernames, forgotten passwords, and keeping information up to date-can be a real pain. As a programmer, writing an authentication system can be even worse.
Lucky for us, Django provides a default implementation for managing user accounts, groups, permissions, and cookie-based user sessions out of the box.
Like most things in Django, the default implementation is fully extendible and customizable to suit your project's needs. So let's jump right in.