Django:User.object.get()将用户登录到

时间:2018-02-22 13:40:58

标签: django django-views

我只是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')
]

1 个答案:

答案 0 :(得分:1)

它不会以该用户“登录”为止。将名为“user”的对象传递给模板,该模板将覆盖具有该名称的任何其他对象。但这只是一个显示问题;您未经过该用户的身份验证。

您可能只需为模板对象选择其他名称。