Search code examples
djangodjango-registration

why does django-registration use an "activation window" for activating accounts?


i'm using django-registration, which is a django lib that helps with users registering on a django-built website. All well and dandy, except that it insists i have an "activation email timeframe" associated with all new users.

It defaults to a 7 day window, after which, if someone signed up (and we then sent an email to confirm their email address) but didn't click on the link in the sent email within the 7 days, then they cannot sign up. Instead, they need to do the whole process all over again.

I'm sure this is a concept that exists generally in web design, because why would django-registration make its own arbitrary signup process up?

Anyway, the question is why? What do i gain by having the peace of mind knowing that all the users of my site are the kind of go-getters that click on registration emails with 7 days of receiving them? Why should i sleep easier knowing that my database isn't filled with users who, for whatever reason, clicked through to sign up but didn't actually want to sign up?

cheers!


Solution

  • If you later decide to issue a newsletter, or want to send an important message (for example, a change in your privacy policy), the last thing you want is the message landing on:

    • a spam trap mailbox
    • the wrong mailbox (beacause of a typo or a prank)

    The first will cripple your ability to reach any mailbox at the top five email providers (Gmail, Windows Live (MSN), Yahoo, AOL and... I forgot the number five). The second will lead to more spam complaints with the same effect.

    That is why you should care about your your subscribers email being confirmed by double opt-in

    [update]

    I undestand your question now, thanks for clarifying. This is explained in the docs:

    Inevitably, a site which uses a two-step process for user signup -- registration followed by activation -- will accumulate a certain number of accounts which were registered but never activated. These accounts clutter up the database and tie up usernames which might otherwise be actively used, so it's desirable to clean them out periodically.

    Just change ACCOUNT_ACTIVATION_DAYS if you don't care about your subscriber database being filled with inactive accounts.