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