On Sat, 2009-04-11 at 07:52 -0700, pkenjora wrote: > Malcom, Well, I'm not "Malcom" (sic), but I'll reply anyway.
> Google, FaceBook, and LinkedIn have been using email authentication > for how long now? With the default constraints you've put on Django a > developer would have to "work around" the out of the box code to make > the project behave like the big 3 names on the web. There's some assumption there that what they're doing is a good idea. Their systems have the usability problems I've mentioned. It's also not clear their authentication methods are the best around. In any case, as I note below (and have written elsewhere), you're simply not restricted from using this system and can do so without patching Django, if that's the way you want to go. There's no restriction in place here! The combined size of forums and social networking sites not pretending that my "handle" is an email address is, I'll wager, larger than Facebook or LinkedIn, certainly. Which has precisely the same small weight as your examples. The point being that there are valid use-cases in both directions and you'll notice that that's never been disputed. [...] > As far as your reasons go, I'm fairly sure its just as easy to > change the email as it is the username, I'm sorry you feel that way. It's patently false. The username is only used on the site you are creating an account for. Your email address has much wider usage and creating a new one isn't always possible or desirable (signing up to one of the hosted services requires agreeing to T&C that are often unpleasant). The username when creating a new account on a site has much less currency. > I would even argue that my > username (display name) could change but my login credentials should > stay the same. You are assuming that the username is the display name. That might be a secondary use for it and it sometimes works well for that. However, the username is primarily the unique identifier for the user within the system. It's the thing that won't change. Having a display name, particularly one that can change is also quite common and it's for extensions like that that user profile exist for. Login credentials are not the same as identifier within the system. The login credentials should definitely be permitted to change. Having an account tied to an email address is tragic when that email address is no longer accessible to you (for example, it was a company address and you've since left the company). Allowing the email address to change -- and hence not making it the entity identifier -- is a good thing. > You are correct, username authentication has always been around. > However, the explicit banning and obfuscating of email authentication > in the default module has not. I'm sorry, but that's simply not correct. I pointed that out earlier in the thread. You have the version control history, please feel free to find the released version of Django where this wasn't the case and correct me if you really feel this is not the case. > That is the part that worries me, that > is where things are going wrong. > > We're all professionals here, we all take the time to leave feedback > in the hopes of improving Django. Which is a given. Not a partricularly relevant comment for this thread, unless you're trying to imply something sinister, since there's no indication that feedback isn't being listened to. In fact, in this case, it's being answered with both technical and usability reasons for the current behaviour. > I have a sneaking suspicion that > project specific requirements crept into the trunk because it was > easier than patching every time. Whereas, I have a sneaking suspicion that you've forgotten your history. Now we both have sneaking suspicions. It's all very suspicous. :-) Part of the problem with threads like this is the built-in assumptions people are bringing to the table. The username field in the User model is just the unique identifier in the system. If you want to use the email address for login, it's fairly easy to do so: writing auth backends is supported and encouraged. You never have to show the username to users (so you could generate a more-or-less random identifier when creating the account) and that's fairly standard practice in a bunch of projects I've seen. It's also not uncommon to add a user-editable display name in a user profile class, etc, etc. You're argument is about a bit of a red herring because it's assigning more import to the username field than it deserves. That field simply isn't intrinsic to a user's experience on the site because you are in complete control as to what information you show and what information you authenticate against on your site. Before complaining that "oh, no, now I have to write my own login method", yes, big deal! You have to write half a dozen lines once, or use somebody else's. Just like you do when supporting OpenID or Facebook Connect or other authentication systems. Django has a default auth system. It works well for a large class of situations. It's also easy enough to use other systems, including an email address as an authentication facilitator. Regards, Malcolm --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---

