繁体   English   中英

node.js REST api身份验证和oauth2

[英]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的日志。

分离的好处是:

  • 您分开了安全问题
  • 如果您的应用程序传输了大量数据,您可以控制访问带宽(并且您希望为您的应用程序提供更高的优先级......很可能!)
  • 或者只是你可以控制授权(例如,没有通过公共API删除)

2)我不是安全大师,但我肯定会信任passport.js身份验证系统,因为它在将节点用作后端时被广泛使用。

你可以参考这个问题来实现快递中的CSRF安全性: 如何使用express.js在Ajax调用中实现CSRF保护(寻找完整的例子)?

或者,如果您使用FB或Twitter连接策略,则另一种策略是使用刷新令牌。

希望能帮助到你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM