我只是Django的初学者,但我遇到了非常有趣的问题。我没有登录我的网页,但在我想看到某人的个人资料后,它会自动将我登录到该用户。这似乎是一个巨大的安全漏洞。我还将print语句放入其中并表示用户已通过身份验证。 答案将不胜感激。
views.py
def login_view(request):
form = UserLoginForm(request.POST or None)
if form.is_valid():
username = form.cleaned_data.get('username')
password = form.cleaned_data.get('password')
user = authenticate(username=username, password=password)
login(request, user)
return render(request, "home/login.html", {'form': form})
def user_feedView(request, username):
try:
userU = User.objects.get(username=username)
print(userU.is_authenticated)
except User.DoesNotExist:
raise Http404("User does not exist")
return render(request, 'home/user_feed.html', {'user': userU})
urls.py
urlpatterns = [
path('user/<username>/', views.user_feedView, name='username'),
path('logout/', views.logout_view, name='logout'),
path('login/', views.login_view, name='login'),
path('', views.index, name='home')
]
答案 0 :(得分:1)
它不会以该用户“登录”为止。将名为“user”的对象传递给模板,该模板将覆盖具有该名称的任何其他对象。但这只是一个显示问题;您未经过该用户的身份验证。
您可能只需为模板对象选择其他名称。