Opened 2 years ago

Last modified 2 years ago

#34032 closed Cleanup/optimization

Base authentication Backend should raise NotImplemented on needed methods — at Initial Version

Reported by: Dre Westcook Owned by: nobody
Component: contrib.auth Version: 4.0
Severity: Normal Keywords: authentication
Cc: Vishal Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

Hi all,

Recently I've been trying my hand at creating alternative sign on methods for a django system and I've found the whole process fairly clean.

However I did reach bit of a time waste when my "code that should work, doesn't" -- in my login view, I would authenticate() and login() properly, but with a redirect response I would be an AnonymousUser immediately after.

After two days of debugging and re-reading docs, I found that I missed out a fairly critical sentence: "Authentication backends implements two required methods". -- my authentication backend (of which I was replacing the default) - did not implement get_user() so we would use the default BaseBackend.get_user() which is to return None.

To me, it wasn't quite obvious why the authentication system needs to implement get_user ( as i'd want to just get the user by pk like any other) so this was a little bit of time wasting that I feel could be made a bit more obvious. but I'm happy for other considerations.

Some ideas I had for changing this that might've saved time in the future:

Happy for some thoughts /feedback / pushback. I just know that this was a painpoint for me and it wasn't obvious where the AnonymousUser was coming from. Perhaps it's just a documentation change.

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top