我们有一个带有 json API 的应用程序。我们在浏览器中使用 Javascript 向其发送 ajax 调用。每个 API 调用都需要一个 API key 。
我计划实现一个登录 API,该 API 将接受用户名和密码并返回该特定用户的 API key 。 key 将放入 cookie 中,并随每个 API 请求传回。 (您仍然可以将它包含在 json 请求中;cookie 将作为后备。)
这个方案的最大好处是我们不需要在服务器端维护 session 。服务器端的一切都是无状态的。当您处于集群环境中时,无状态操作具有显着优势。
这是个坏主意吗?安全吗?有没有更好的办法?
假设我们在 https 上运行。
最佳答案
不,按照您提到的方式,即使您使用的是 https,您的 API key 也不安全。这是因为 API key 现在存在于您的浏览器中,并且很容易被浏览器插件、脚本等暴露。
这里要考虑的另一件事是您的 token 有效多长时间。在这种情况下,建议 API token 过期时间较短。
幸运的是,很多人都有相同的要求,并且 OAuth 2 规范有一个隐式授权案例流程,仅适用于您提到的用例。您可以查看并决定您的方法,
关于javascript - 将 API key 存储在浏览器 cookie 中有什么缺点吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17755300/