【问题标题】:How should I setup auth in a nodejs app?我应该如何在 nodejs 应用程序中设置身份验证?
【发布时间】:2017-06-18 23:00:10
【问题描述】:

我目前正在开发一个小型应用程序,在 nodejs 和一个 angularjs 前端中有几个端点。

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

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

  1. 我应该使用什么身份验证策略?基本、OAuth 还是其他?为什么会这样?我的意思是,我了解他们的流程是如何工作的,但我不知道为什么其中一个或另一个适合我的应用。
  2. 端点应该需要身份验证,还是应该检查 cookie/令牌或会话中的其他内容?我对此完全陌生,所以我什至不知道这个问题是否有意义。

无论如何,如果我对这个主题有任何全面的了解,我将不胜感激,因为我在开发具有身份验证和安全性的应用程序方面没有任何经验。

谢谢!

【问题讨论】:

    标签: angularjs node.js security authentication


    【解决方案1】:

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

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

    有一些 nodejs 库可以帮助您创建、解码、验证 JWT 令牌。 (如jsonwebtoken)。你可以在github找到更多细节。

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

    在服务器端,你可以在需要认证的路由中添加一个自定义的auth中间件,它会验证token的有效性,并为当前路由调用下一个中间件。

    【讨论】:

    • 我会接受这个答案,因为它对我进行更多研究很有帮助。我可能很宽泛,因为我对此不太了解,但这有帮助!谢谢:)
    猜你喜欢
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-06
    • 2010-12-05
    • 2014-10-07
    相关资源
    最近更新 更多