【发布时间】:2013-09-07 10:56:47
【问题描述】:
我正在使用 Rails API 构建一个简单的 api,并希望确保我在此处的正确轨道上。我正在使用 devise 处理登录,并决定使用 Devise 的 token_authenticatable 选项,它会生成一个 API 密钥,您需要随每个请求一起发送该密钥。
我正在将 API 与骨干/牵线木偶前端配对,并且通常想知道我应该如何处理会话。我的第一个想法是将 api 密钥存储在本地存储或 cookie 中,并在页面加载时检索它,但从安全角度来看,以这种方式存储 api 密钥的一些事情让我感到困扰。通过查看本地存储/cookie 或嗅探任何通过的请求并使用它来无限期地冒充该用户来获取 api 密钥是不是很容易?我目前正在重置每次登录的 api 密钥,但即使这似乎很频繁 - 任何时候您在任何设备上登录,这意味着您将在其他所有设备上注销,这有点痛苦。如果我可以取消此重置,我觉得从可用性的角度来看它会有所改善。
我在这里可能完全错了(希望我错了),谁能解释这种方式的身份验证是否可靠安全,如果不是,还有什么好的选择?总的来说,我正在寻找一种方法,可以安全地让用户“登录”到 API 访问,而无需频繁强制重新验证。
【问题讨论】:
标签: ruby-on-rails api authentication devise rails-api