Django多用户登录和注销
Django multiple users login and logout
同一类型的两个用户登录。当其中一位用户更改选项卡时,现在该用户是最后登录的用户({{ 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 应用程序中同时登录。
Django 使用会话来管理用户。基本上,当用户登录到 Django webiste 时,Django 后端会在用户浏览器中放置一个 cookie,将浏览器标识为刚刚登录的用户。Django(基本上所有其他 framework/implementation)将只允许其中之一每个会话的这些用户 cookie。
因此,如果您以某种方式在不注销的情况下再次登录,它将简单地覆盖当前用户 cookie 并有效地注销前一个用户。
同一类型的两个用户登录。当其中一位用户更改选项卡时,现在该用户是最后登录的用户({{ 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 应用程序中同时登录。
Django 使用会话来管理用户。基本上,当用户登录到 Django webiste 时,Django 后端会在用户浏览器中放置一个 cookie,将浏览器标识为刚刚登录的用户。Django(基本上所有其他 framework/implementation)将只允许其中之一每个会话的这些用户 cookie。
因此,如果您以某种方式在不注销的情况下再次登录,它将简单地覆盖当前用户 cookie 并有效地注销前一个用户。