django - 有没有办法在没有用户身份验证的情况下检查 Django 服务器中的客户端?
问题描述
所以我正在尝试构建一个 Django 应用程序,它为每个用户提供一些内容,但每天仅限于 3 次。为了方便起见,我不考虑创建/使用任何预先存在的用户模型或身份验证。
但由于我必须限制显示给每个用户的内容数量,我必须判断当前请求是否来自同一个人。我可以考虑在前端使用本地存储、cookie 等启用此功能。(忽略安全问题或其他问题,因为这只是一个玩具项目。)但我想知道是否有办法在后端不使用用户身份验证。
有任何想法吗?非常感谢你:)
解决方案
使用客户端的 IP 作为标识符。
from django.core.cache import cache
cache_key = "cached_content_from_" + request.META["REMOTE_ADDR"]
content = cache.get(cache_key)
if content:
return content
else:
content = <your function here>
cache.set(cache_key, content, <your time out>)
return Response(content)
推荐阅读
- python - 如何用同一个列表初始化两个列表类型的属性?
- datetime - 烧瓶将日期时间计算添加到数据库中
- python - 导入错误:使用 pickle.load 时没有名为“utils”的模块
- android - 在 Android 中使用 React 本机钥匙串进行人脸身份验证
- c# - ASP.NET Core - 可配置路由
- flutter - 如何修复“使用不包含 MediaQuery 的上下文调用 MediaQuery.of()”的错误?
- python - 如何按顺序连接列表的元素?
- c# - 当类从用户控件继承时,如何阻止对位置等属性的访问
- flutter - Flutter StreamBuilder 你孩子的范围是什么
- bash - 在 mac 终端上找不到导出命令