2015-03-26 3 views
0

При попытке аутентификации пользователя, чтобы они могли войти в систему, auth.authenticate не продолжает возвращаться NoneДжанго auth.authenticate держит возвращающ None

models.py

class User(AbstractBaseUser): 
    fname = models.CharField(max_length=20, blank = False) 
    lname = models.CharField(max_length=20, blank = False) 
    email = models.EmailField(max_length=50, unique = True, db_index = True, blank = False) 
    course_id = models.CharField(max_length=20, default='DEFAULT VALUE') 
    role = {} 
    USERNAME_FIELD = 'email' 
    objects = UserManager() 

views.py:

def user_signup_save(request): 
    fname = request.POST.get('fname') 
    lname = request.POST.get('lname') 
    email = request.POST.get('email') 
    password = request.POST.get('password') 
    user = User(fname = fname, lname = lname, email = email) 
    user.set_password('password') 

    user.save() 
    return HttpResponse(user.password) 


def login(request): 
    email = request.POST.get('email') 
    password = request.POST.get('password') 
    user = auth.authenticate(email = email , password = password) 
    print user 
    if user is not None: 
     auth.login(request, user) 
     return HttpResponse("valid, logged in") 
    else: 
     return HttpResponse("invalid, not logged in") 
    pass 

Кроме того, после того, как пользователь подписывается и хранится в db, когда я пытаюсь сравнить их пароль с помощью check_password(string), он всегда возвращает false, когда я использую сырые и хешированные пароли. Бэкэнд, который я использую, - 'django.contrib.auth.backends.ModelBackend'. Какие-либо предложения?

ответ

3

Ваш вопрос здесь:

user.set_password('password') 

Вы устанавливаете пароль в строке password вместо набран пароль пользователя. Поэтому вопрос

Изменить что

user.set_password(password) #Note the quotes around the variable password 

Использование password в качестве пароля для существующих пользователей, и вы будете поражены, увидев, что это authenticate реагирует так, как предполагалось;)

+0

Спасибо большое –

+0

рад, что это помогло. – karthikr

Смежные вопросы