Description
I think a token length of 6 is not secure. It would be nice to have the ability to change the length of the token (and maybe completely change the token? I think alphanumeric would be better).
If my calculations are correct, a hacker has a pretty good chance of getting the right token.
You can calculate the entropy using the formula:
log(uniqueCharactersAmount^Length) / log(2)
The entropy of the password is:
log(10^6) / log(2) = 19.9315
So about 20 bits.
With the formula:
2^(entropy - 1) / requestsPerSecond
you can calculate the duration it takes to crack the token.
According to this site, django can handle about 15,000 requests per second, but a production server has middlewares, logging, etc. Let's just work with 500 request per second.
2^(20 - 1) / 500 = 1,048.576 ~ 17.5 Minutes
15 / 17.5 is about 0.85 - so a hacker has a 85% chance of finding the right token.
If we'd use alphanumeric (62 characters), it would take about 397 days to bruteforce all of them!
But anyway, just my two cents and I probably screwed the maths up :D