#django #django-authentication
#django #django-аутентификация
Вопрос:
Два пользователя одного типа входят в систему. Когда один из пользователей меняет вкладку, теперь пользователь является тем, кто вошел в систему последним ({{ user.username }} изменения).
Более серьезной проблемой для меня является то, что как только один из них выходит из системы, другой автоматически выходит из системы. В принципе, нет двух пользователей, есть только один за раз, пользователь, который вошел в систему последним.
Кроме того, все просмотры @login_required.
@login_required
def user_logout(request):
logout(request)
return HttpResponseRedirect(reverse('login'))
def user_login(request):
if request.method == 'POST':
username = request.POST.get('username')
password = request.POST.get('password')
user = authenticate(username=username, password=password)
if user:
login(request, user)
return HttpResponseRedirect(reverse('success_page'))
else:
return render(request, 'login.html')
else:
return render(request, 'login.html')
В settings.py:
SESSION_COOKIE_AGE = 24*60*60
LOGIN_URL = '/login/'
Моя базовая форма пользователя:
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
class SignUpForm(UserCreationForm):
email = forms.EmailField(max_length=254, help_text='Required. Inform a valid email address.')
class Meta:
model = User
fields = ('username', 'email', 'password1', 'password2', )
Мой вопрос в том, как я могу одновременно авторизовать несколько пользователей в приложении Django.
Комментарии:
1. Вы не можете заставить нескольких пользователей использовать один и тот же браузер, если это то, о чем вы спрашиваете.
2. Именно в этом и заключалась моя проблема! Спасибо.
Ответ №1:
Django использует сеансы для управления пользователями. По сути, когда пользователь входит в веб-систему Django, серверная часть Django помещает файл cookie в браузер пользователя, который идентифицирует браузер как пользователя, который только что вошел в систему. Django (и, в основном, любая другая платформа / реализация) разрешает только один из этих пользовательских файлов cookie за сеанс.
Итак, если бы вы каким-то образом вошли в систему снова, не выходя из системы, это просто переопределило бы текущий пользовательский файл cookie и эффективно вывело из системы предыдущего пользователя.