Daniel Sims
Daniel Sims

Reputation: 531

Django - Authenticate with custom User model returns None

I'm following a tutorial (https://thinkster.io/tutorials/django-json-api/authentication) on setting up authentication. I've got to the point where I'm registering users and receiving the tokens back. I can drop into the shell and do;

 >>> user = Users.objects.first()
 >>> user.email 
 >>> [email protected]
 >>> user.password
 >>> 12345678

This shows that the user exists in the database. But when calling my login endpoint;

/users/login/ 

the authenticate method returns None.

user = authenticate(username=email, password=password)

I'm printing the email and password just before and it shows the correct data passed in.

I've also set my USERNAME_FIELD to email in my model.

USERNAME_FIELD = 'email'

I've updated my model in my settings to be

AUTH_USER_MODEL = 'aemauthentication.User'

I've had a look around and the above line in the settings file seems to be the approved answer for most people with this issue.

GitHub link to project - https://github.com/Daniel-sims/aem_1

Upvotes: 0

Views: 472

Answers (1)

Daniel Sims
Daniel Sims

Reputation: 531

As per; Django User Creation successful, but authenticate() returning None

I'd changed the create_user method to take the password as a parameter;

user = self.model(username=username, email=self.normalize_email(email), password=password)

but you have to call set password, so everythings working fine with;

user = self.model(username=username, email=self.normalize_email(email))
user.set_password(password)

Upvotes: 1

Related Questions