How to force multi auth system log out problem in django?
Django authentication provides both authentication and authorization together and is generally referred to as the authentication system, as these features are somewhat coupled.
User
objects¶
User
objects are the core of the authentication system. They typically represent the people interacting with your site and are used to enable things like restricting access, registering user profiles, associating content with creators etc. Only one class of user exists in Django’s authentication framework, i.e., 'superusers'
or admin 'staff'
users are just user objects with special attributes set, not different classes of user objects.
The primary attributes of the default user are:
See the fullAPIdocumentation
for full reference, the documentation that follows is more task oriented.
Creating users¶
The most direct way to create users is to use the included create_user()
helper function:
>>> fromdjango.contrib.auth.modelsimportUser>>> user=User.objects.create_user('john','lennon@thebeatles.com','johnpassword')# At this point, user is a User object that has already been saved# to the database. You can continue to change its attributes# if you want to change other fields.>>> user.last_name='Lennon'>>> user.save()
If you have the Django admin installed, you can also create users interactively .
Creating superusers¶
Create superusers using the createsuperuser
command:
$ python manage.py createsuperuser --username=joe --email=joe@example.com
You will be prompted for a password. After you enter one, the user will be created immediately. If you leave off the --username
or --email
options, it will prompt you for those values.
Changing passwords¶
Django does not store raw (clear text) passwords on the user model, but only a hash (see documentation of how passwords are managed for full details). Because of this, do not attempt to manipulate the password attribute of the user directly. This is why a helper function is used when creating a user.
To change a user’s password, you have several options:
manage.pychangepassword*username*
offers a method of changing a user’s password from the command line. It prompts you to change the password of a given user which you must enter twice. If they both match, the new password will be changed immediately. If you do not supply a user, the command will attempt to change the password whose username matches the current system user.
You can also change a password programmatically, using set_password()
:
>>> fromdjango.contrib.auth.modelsimportUser>>> u=User.objects.get(username='john')>>> u.set_password('new password')>>> u.save()