我有一个应用程序,它使用django drf和简单的authtoken,postgres用于数据库,redis用于缓存。
我正在尝试减少对我的数据库的调用数量,最常见的操作之一是在authtoken表上选择。实际上,需要为受保护端点上的每个请求调用它来验证用户的权限。
我们可以通过将redis中的用户令牌缓存为 {user_id: token}
.
假设我们为密钥设置了一个合适的过期时间,并且在撤销令牌authtoken的情况下使其失效,那么缓存auth令牌是一种反模式吗?有什么安全问题我应该关心吗?
1条答案
按热度按时间jtw3ybtb1#
如果你不想有数据库查找,你可以使用jwt。jwt正在使用加密技术检查令牌。
如果你想保留drf令牌,你可以缓存它,但它会增加代码的复杂性。您是否看到这些查询对数据库性能的巨大影响?
如果您决定缓存令牌,请记住保护redis。
我在我的样板和django+react文章中使用drf令牌。我喜欢这种方式,因为它使代码/流保持简单。