0

所以这是一个场景,我有一个 API 编写的 JS 并在服务器上使用 nodejs 公开,我想根据私钥注册提供给不同的客户端使用。需要以多租户方式明智地记录每个 GET 请求客户端以进行计费,并验证客户端应使用允许的 /sigup 限制。

如何使用 .

4

1 回答 1

0

你的问题有点含糊,但我会尽力帮助你。

如果我在这种情况下,我会为每个客户端使用 api(公共)和秘密(私人)密钥,并带有签名。每个请求都必须包含公钥(作为字段或标头,或者您喜欢的任何形式)以识别客户端、签名标头以及从 a 生成的签名(这可能有点偏离,我已经有一段时间没有这样做了)基于发送信息的 base64 编码和特定客户端的密钥的 HMAC 字符串。因为只有你的服务和客户端应该有这个密钥,你将能够验证签名是否与客户端不匹配。

包括让客户端在密钥被泄露时重置密钥的方法也是一个好主意。

此时您已经识别并验证了客户端,因此您可以简单地将请求记录在您正在使用的任何类型的数据库中。如果要验证是否允许客户端发出该请求,则必须构建某种权限系统(可能是 db 表,其中包含允许每个客户端访问的内容,或者允许哪些客户端访问每个资源),如以及检查以确保客户端没有超过您设置的任何速率限制。

如果这不是您所要求的,我深表歉意,如果您还有其他问题,请随时提出。

于 2013-06-04T16:49:02.030 回答