[英]node.js REST api authentication and oauth2
我有几个问题:
1)对于外部API使用和作为主干(或普通js)前端的服务器端,使用REST API是一个好习惯吗? 我认为编写一个REST API服务器并将其用作后端要容易得多。
2)如果我使用oauth 2标准编写我的webapp身份验证,这是将我的秘密令牌存储在cookie中的好方法吗? 我认为这会导致CSRF漏洞。
正如我所看到的,passport.js使用cookie存储秘密令牌,例如Facebook或Twitter ......在这种情况下,CSRF是什么?
这是一个非常有趣的问题,我很惊讶没有人回答。
1)对于第一个问题,我的回答肯定是肯定的 ! 您不希望编写2次API逻辑。
您可以做的是使用不同的URL。
例如。 对于公共API,您使用http://api.domain.com/objects/而关于内部API,您可以使用http://domain.com/api/objects/或您喜欢的任何内容。
然后使用相同的逻辑,但使用不同的身份验证策略。 公共的一个具有身份验证令牌,像许多流行的API(Twitter,Facebook等)和私人的使用passport.js的日志。
分离的好处是:
2)我不是安全大师,但我肯定会信任passport.js身份验证系统,因为它在将节点用作后端时被广泛使用。
你可以参考这个问题来实现快递中的CSRF安全性: 如何使用express.js在Ajax调用中实现CSRF保护(寻找完整的例子)?
或者,如果您使用FB或Twitter连接策略,则另一种策略是使用刷新令牌。
希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.