我应该如何在nodejs应用程序中设置auth?

时间:2017-06-18 23:00:11

标签: angularjs node.js security authentication

我目前正在开发一个小应用程序,其中包含nodejs中的几个端点和angularjs前端。

目前我有一个用户端点和另一个用于事件的端点。问题是,我正在考虑让所有GET方法都需要auth,以便没有登录的人无法访问系统,因为我想使用PassportJS。

无论如何,我的问题如下:

  1. 我应该使用哪种身份验证策略?基本,OAuth还是其他?那为什么会这样?我的意思是,我理解他们的流程如何运作,但我不知道为什么这个或那个适合我的应用程序。
  2. 端点是否需要auth,还是应该在会话中检查cookie / token或其他内容?我对此完全陌生,所以我甚至不知道这个问题是否有意义。
  3. 在任何情况下,我都会感谢对该主题的任何全面了解,因为我没有任何使用auth和安全性开发应用程序的经验。

    谢谢!

1 个答案:

答案 0 :(得分:1)

您必须提供有关身份验证需求的更多详细信息,以便有人为您提供对此广泛问题的明确答复。

根据您的问题,可以假设您没有任何要求,因此我可以建议JWT(JSON网络代币 - https://jwt.io/

有nodejs库可以帮助您创建,解码,验证JWT令牌。 (例如jsonwebtoken)。您可以在github上找到有关它的更多详细信息。

一旦有人登录,您可以将此生成的令牌传递回客户端,该客户端可以将其存储在浏览器的会话中。 通过将令牌附加到请求标头中,可以在后续请求中使用该令牌。

在服务器端,您可以将自定义身份验证中间件添加到需要身份验证的路由中,这将验证令牌的有效性并为当前路由调用下一个中间件。