首页 > 解决方案 > 用户可以将帐户切换到另一个用户

问题描述

我有一个网址path('dashboard/<int:user_id>/', views.dashboard, name='dashboard'),

问题是当用户登录时,他可以更改user_idurl 中的变量并切换到另一个用户帐户。我的问题是如何防止这种行为。

我应该更改模板或其他地方的内容吗?

标签: pythondjangopostgresql

解决方案


你不应该URL 中传递user_id。您可以使用request.user获取登录用户:

# app/urls.py

from django.urls import path

urlpatterns = [
    path('dashboard/', views.dashboard, name='dashboard')
]

在您看来,因此您可以使用request.user

# app/views.py

from django.contrib.auth.decorators import login_required

@login_required
def dashboard(request):
    myuser = request.user
    # ...

通过使用@login_required装饰器 [Django-doc],您可以防止在没有用户登录时触发视图。


推荐阅读