【问题标题】:Django REST Framework - how to do Token Authentication with MemcachedDjango REST Framework - 如何使用 Memcached 进行令牌身份验证
【发布时间】:2015-09-16 00:04:18
【问题描述】:

我正在为我的几个 DRF 视图使用 TokenAuthentication。如果键存在于缓存中,视图代码本身已经优化了使用 memcached 的逻辑 - 通过减少数据库查询来加快速度。但是,我看到对于来自电话(客户端)的每个 API 请求,服务器仍然至少执行一个查询 - Postgres authtoken_token select 用于验证用户发送的 authtoken

有没有办法避免这种情况,因为 authtoken 很少更改 - 通过将其保存在缓存中?

我在 settings.py 中使用以下内容,但我认为这对我的情况没有帮助

SESSION_ENGINE = "django.contrib.sessions.backends.cached_db"

【问题讨论】:

  • 在 DRF 3.3.1 中找不到任何使用缓存进行令牌身份验证的代码。只需对每个请求进行模型过滤器查询...

标签: django memcached django-rest-framework django-authentication django-cache


【解决方案1】:
  • 您可以在 memcache 中设置令牌时将 TIMEOUT 设置为 None,这样缓存的令牌将永远不会过期(直到 memcache 服务器重新启动/驱逐)。或者您可以设置较长的超时时间以最大限度地减少数据库查询。
  • 或者,您可以在缓存后端时选择带有django-redis 的 Redis。 Redis 提供持久缓存选项。

【讨论】:

    猜你喜欢
    • 2019-05-18
    • 1970-01-01
    • 2015-12-15
    • 1970-01-01
    • 2018-12-15
    • 2019-01-18
    • 2021-05-22
    • 2020-09-12
    • 2023-03-08
    相关资源
    最近更新 更多