Django authentication based on an extensible MongoEngine user class.

Along with expected support for common external authentication providers and a traditional on-site registration workflow with e-mail address confirmation, anonymous users are given a temporary account instance which can then be converted to an authenticated one.

I believe this is the best way for community oriented websites where you want to allow even anonymous users to edit the content or in some other way interact with the website. Instead of displaying their IPs (like Wikipedia does) or having all anonymous users have the same name displayed, a new account with random username is generated for each anonymous user and all content he or she creates is linked to it. Anonymous user can in this way be completely equal to registered users and programming logic can be thus simplified, without a special case for anonymous users. The only difference is that when user session terminates, this anonymous account gets orphaned. If the user wants to keep control over it, he or she can convert it to a registered account. In fact, the only difference between anonymous and registered accounts is that registered accounts have some authentication mechanism linked to them.

If you have any relevant link, project, idea, comment, feedback, critique,
language fix, or any other information, please share it bellow. Thanks.