所以这是一个场景,我有一个API编写JS并在服务器上使用nodejs公开,我希望根据私钥注册提供给不同的客户端。需要以多方式方式记录每个GET请求客户端以进行计费和验证客户端应该使用allowed / sigup限制。
如何使用。
答案 0 :(得分:0)
你的问题有点模糊,但我会尽力帮你。
如果我遇到这种情况,我会使用api(公共)和秘密(私人)密钥为每个客户端签名。每个请求都必须包含公钥(作为字段,或者标题,或者你喜欢),以便识别客户端,签名标题,以及从a生成的签名(这可能有点偏差)自从我这么做以来已经有一段时间了)HMAC字符串基于发送信息的base64编码和特定客户端的密钥。因为只有您的服务和客户端才能拥有此密钥,您才能验证签名是否与客户端不匹配。
包含一种让客户端在密钥被泄露时重置密钥的方法也是一个好主意。
此时您已经识别并验证了客户端,因此您只需将请求记录在您正在使用的任何类型的数据库中。如果要验证客户端是否允许发出该请求,则必须构建某种权限系统(可能包含允许每个客户端访问的数据库或允许哪些客户端访问每个资源的数据库表),如以及确保客户端没有超出您设置的任何速率限制的检查。
如果这不是您所要求的,我道歉,如果您有任何其他问题,请随时提出。