首页 > 解决方案 > 有没有办法在没有用户身份验证的情况下检查 Django 服务器中的客户端?

问题描述

所以我正在尝试构建一个 Django 应用程序,它为每个用户提供一些内容,但每天仅限于 3 次。为了方便起见,我不考虑创建/使用任何预先存在的用户模型或身份验证。

但由于我必须限制显示给每个用户的内容数量,我必须判断当前请求是否来自同一个人。我可以考虑在前端使用本地存储、cookie 等启用此功能。(忽略安全问题或其他问题,因为这只是一个玩具项目。)但我想知道是否有办法在后端不使用用户身份验证。

有任何想法吗?非常感谢你:)

标签: django

解决方案


使用客户端的 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)

推荐阅读