Tuesday, April 24, 2012

Re: Logging in by Email isn't responding

I'm new to django too, so i'm sorry if i get this wrong, but you don't seem to be authenticating the user using django's authenticate method. I made my username equal to email on.signup and then i use vanila django's auth module

On 23/04/2012 7:21 PM, "Mai" <mai.elkomy@gmail.com> wrote:

here i guess i wrote Every thing to be able to log in by mail but it's
not working is there something missing please? and
AUTHENTICATION_BACKENDS = (
'mayapp.backends.EmailAuthBackend',
'django.contrib.auth.backends.ModelBackend'
)


backends.py


from django.conf import settings
from django.contrib.auth.backends import ModelBackend
from django.core.validators import email_re
from django.contrib.auth.models import User, check_password

# Overwrite the default backend to check for e-mail address
class EmailAuthBackend(object):
   """
   Email Authentication Backend

   Allows a user to sign in using an email/password pair rather than
   a username/password pair.
   """

   def authenticate(self, username=None, password=None):
       """ Authenticate a user based on email address as the user
name. """
       try:
           user = User.objects.get(email=username)
           if user.check_password(password):
               return user
       except User.DoesNotExist:
           return None

   def get_user(self, user_id):
       """ Get a User object from the user_id. """
       try:
           return User.objects.get(pk=user_id)
       except User.DoesNotExist:
           return None


views.py



def login_user(request):
       state = "Please log in below..."
       username = password = ''
       if request.POST:
               if 'login' in request.POST:
                       username = request.POST.get('username')
                       password = request.POST.get('password')

                       user = authenticate(username=username, password=password)
                       if user is not None:
                               if user.is_active:
                                       login(request, user)
                                       state = "You're successfully logged in!"

                                       return render_to_response('master.html',RequestContext(request))
                               else:
                                       state = "Your account is not active, please contact the site
admin."
                       else:
                               state = "Your username and/or password were incorrect."
               elif 'signup' in request.POST:
                       form= SignUpForm()
                       context = {'form':form}
                       return
render_to_response('Sign_up_Employer.html',context,context_instance=RequestContext(request))



       return render_to_response('login.html',{'state':state, 'username':
username},RequestContext(request))

--
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

--
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+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.

No comments:

Post a Comment