Javascript Secure node.js restful API

Javascript Secure node.js restful API,javascript,node.js,security,rest,express,Javascript,Node.js,Security,Rest,Express,我想保护一个restful Api,并且我正试图使它尽可能简单,同时保持无状态 存储、生成和验证api密钥的最佳方式是什么?我正在考虑使用节点uuid生成密钥,将它们存储在redis中,然后使用passport密钥对它们进行身份验证 这样行吗?或者是我缺少的另一个最佳解决方案 我已经读了很多这方面的内容,但是很多资源缺少实际的实现,比如这个我觉得你的解决方案不错,但恐怕还不够安全。我建议您使用密钥对请求进行签名,这样您就可以保护您的API免受篡改。因此,您需要为将要使用API的用户生成密钥对,比

我想保护一个restful Api,并且我正试图使它尽可能简单,同时保持无状态

存储、生成和验证api密钥的最佳方式是什么?我正在考虑使用节点uuid生成密钥,将它们存储在redis中,然后使用passport密钥对它们进行身份验证

这样行吗?或者是我缺少的另一个最佳解决方案


我已经读了很多这方面的内容,但是很多资源缺少实际的实现,比如这个

我觉得你的解决方案不错,但恐怕还不够安全。我建议您使用密钥对请求进行签名,这样您就可以保护您的API免受篡改。因此,您需要为将要使用API的用户生成密钥对,比如说
访问id
访问密钥
。HTTP请求将有两个部分,一个是
访问id
,另一个是通过
访问密钥计算整个请求内容的签名。但是
访问密钥
不应该通过HTTP传递。因此,在服务器端,您可以通过存储在Redis中的
访问密钥检查HTTP请求的签名

您可以为此使用Node.js加密模块


希望这能有所帮助。

您能解释一下您的计划如何适应“无状态”方法吗?在我看来,这不是我不想跟踪会话,我只需要检查会话是否有密钥。会话不是这样做的吗?从你的问题很难理解用户是如何获得密钥的?Passport apikeys听起来不错,请确保正确使用这些键并允许重新生成。这正是2条腿的oauth 1