【问题标题】:Node JS Express secure routeNode JS Express 安全路由
【发布时间】:2020-03-26 09:24:54
【问题描述】:

我想要某种身份验证来创建受保护的路由。

例如,GET /forecastweather 应该受到保护。虽然 GET /generalweather 不应该。

我阅读了 express 4.x 文档 (https://expressjs.com/en/4x/api.html),但找不到身份验证功能。我还查看了 req (https://expressjs.com/en/4x/api.html#req) 文档,看看是否有我可以使用的请求属性。

如果我是对的,express 具有基本的身份验证功能,但它似乎已经消失了。通过某种不记名令牌保护路由的最佳方法是什么。

【问题讨论】:

    标签: node.js express authentication routes


    【解决方案1】:

    没有“最佳”的身份验证方式。有多种不同的方法,您必须决定哪种方法最适合您的情况。

    首先,您需要决定如何交付您的凭证,这可能取决于您使用的客户端类型。

    1. cookie 中的令牌(通常最适合浏览器访问)
    2. 自定义标头中的令牌(通常用于 API 的编程访问)
    3. 查询参数中的标记(不常见)

    一旦您决定了令牌的交付方式,您就必须弄清楚客户将如何获得他们的令牌。这通常是某种包含凭据(例如用户名和密码)的表单提交,并且成功验证这些凭据的返回将是令牌。

    要处理此表单,您需要在 Express 中创建一个 POST 请求处理程序并验证凭据,如果凭据有效则返回一个令牌。

    然后,在 Express 中,您将创建一个包含经过身份验证的路由的路由器,并向该路由器添加一些中间件,以在允许请求继续之前验证请求中是否存在有效令牌。这将保护此路由器上的所有路由。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-08-22
      • 2016-06-27
      • 1970-01-01
      • 1970-01-01
      • 2017-03-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多