3

我创建了一个 REST API 并实现了一个签名系统作为安全层,基本上它的工作原理是我有 API 用户使用只有用户和 API 知道的密钥(比如说密码)连接到 API,然后在会话打开后,API 返回一个 API 密钥,用于所有后续调用。

所有后续调用都将提供 API 密钥和不同请求参数的 sha256 哈希,哈希使用密钥创建。

到目前为止一切顺利,但是我面临一个问题,我有一个完整的 AJAX 客户端调用 API,但我不希望我的用户每次想要打开会话并获得一个新的 API 密钥(如果他们以前连接到 API)。

暂时,我使用 javascript 将密钥以纯文本形式存储在 cookie 中,但对我来说似乎是错误的。

你们也有建议或链接指向我吗?有什么我不明白的吗?

提前致谢!

4

1 回答 1

1

在 API 上给他们一个散列租约。租约授予他们在一定时间内访问 API 的权限,该时间在令牌中指定。例如,接下来的 7 天可能会很好。您可以通过简单地将结束日期添加到您的令牌并对其进行签名来做到这一点。

当应用程序返回尝试并开始一个新会话时,它可以要求服务器给它一个新的租约,假设它们已经过身份验证,再过 7 天。

如果他们在 7 天后尝试访问服务器,则需要重新进行身份验证。

于 2012-12-19T01:28:56.937 回答