【问题标题】:Caching of permissions权限缓存
【发布时间】:2013-04-28 00:09:17
【问题描述】:
我正在构建一个完全使用远程 API 处理所有内容的 Rails 应用程序。远程 API 有用户信息、权限等。
由于我的用户权限存在于远程 API 中,我想知道如何在控制器级别检查用户是否有权访问特定页面。
现在这意味着我需要在每个控制器操作上 ping API,或者我可以开始使用缓存。但我不知道权限何时更改,因此缓存会产生同步问题。
人们通常如何处理这个问题?
【问题讨论】:
标签:
ruby-on-rails
api
caching
【解决方案1】:
如果您的应用仅以只读方式使用权限,那么将 API 返回的权限缓存几分钟也没什么坏处。
如果您的应用还允许用户以某种方式更改权限,那么请确保您获取非缓存权限。
当用户访问具有更高敏感性/安全级别的内容(登录、更改密码或其他与个人资料相关的内容)时,您还应该始终使用非缓存版本的权限。
【解决方案2】:
当我制作类似的系统时,每个会话(登录时)只有一次同步用户。
我还可以建议您在后台同步活跃用户,例如每 5 分钟一次(如果重要的话)