You please check the satchmo package there they are using email as username in satchmo-registration using user=generate_id(email,firstname)
On Apr 13, 9:44 am, pkenjora <pkenj...@gmail.com> wrote: > Malcolm, <- Remembered the 'l' this time! > > To keep things simple and avoid fragmenting this discussion into a > million different dead end tit for tats , I'll try to reign in the > main points. > > 1. The default authentication method in Django should have no inherent > restrictions. Such as blocking '@' in the username. This leaves the > default framework open and free of workarounds. This approach would > not preclude any project specific requirements. > > 2. Any authentication method having restrictions should be an opt in > method. The current method is a restrictive authentication method, > one that does not allow email, and should be made optional. > > 3. When you boil down the hundreds of specific use cases out there you > still end up with the above two points. In which case I would make > the argument that if you need to block emails as user names then it is > you who should write a new authentication handler. In your own words, > the framework allows this and its only a few lines of code. > > Now for the dead end tit for tat... this is really project philosophy > not framework philosophy... hence I feel like it is circular > discussion that distracts from the main point... > > Authenticating by email does not require me to check my email every > time I log in. So if my email is no longer accessible (left my job) I > can simply log in and change it to a new one. If changing the > username requires checking my email then I will have the same problem > if I use email as my username or not. > > You yourself identify the username as mainly an authentication > mechanism not necessarily a display value. Thats all the more reason > to have a robust restriction free out of the box implementation of > authentication. > > Thanks for reading the feedback, I still fail to see how you can > include project specific requirements in a framework? The > implementation you are advocating is a subset of the general > implementation I would like to see bundled out of the box. Why not > move it into an optional module? > > -Paul > > On Apr 11, 4:13 pm, Malcolm Tredinnick <malc...@pointy-stick.com> > wrote: > > > 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 django-users@googlegroups.com To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/django-users?hl=en -~----------~----~----~----~------~----~------~--~---