python - 用户可以将帐户切换到另一个用户
问题描述
我有一个网址path('dashboard/<int:user_id>/', views.dashboard, name='dashboard'),
问题是当用户登录时,他可以更改user_id
url 中的变量并切换到另一个用户帐户。我的问题是如何防止这种行为。
我应该更改模板或其他地方的内容吗?
解决方案
你不应该在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],您可以防止在没有用户登录时触发视图。
推荐阅读
- node.js - 在 MVC 设计中,您应该为每个模型或每个功能组设置一个控制器吗?
- php - Laravel 请求无限选择
- php - 更新后wordpress页面内的php停止工作
- java - 我如何使用按钮和输入键来做同样的事情?(爪哇)
- svelte - 如何预览单击 Svelte 中的图标(例如:附件图标)上传的图像?
- python - 在 PyCharm 中执行 Jupyter Notebook / Colab 指令
- react-native - React Native:持久化 API 数据并在连接时检查它是否是最新的
- r - 总结列并将其作为 R 中的 colnames- 数据框
- angular - Angular OnChanges 为输入变量触发,但变量未更新
- lvm - 缺少 LVM 卷的创建时间