身份验证后如何安全地授权用户数据

问题描述 投票:0回答:1

我目前正在研究 Node.js / Express.js 应用程序的授权和身份验证。在我的场景中,我需要验证和识别用户,然后从与我的用户关联的数据库中检索数据。

我了解了如何使用 Passport.js 和 express-sessions 进行身份验证,目前计划使用本地护照策略来对我的用户进行身份验证,但想知道是否需要为我的应用程序实现某种授权以使其更安全。例如,简单地将用户 ID 与每个用户名/密码组合相关联,然后使用它来查询我的数据库以获取相关数据,是否可以?在阅读了 OAuth() 后,我主要对此感到困惑,它利用第三方身份验证来接收访问令牌,然后从资源服务器访问资源。我不确定我是否需要这样的东西来维护安全性,但我觉得我可能从根本上误解了访问令牌的使用方式。它们仅用于外部 API 吗?

node.js express oauth-2.0 passport.js
1个回答
0
投票

在任何安全后端中,您都需要一个不可伪造的后端消息凭证,该凭证可以在 HTTP 请求中发送,以识别用户。然后,您需要实施授权,以根据收到的用户身份限制访问。例如,在在线零售应用程序中,这将阻止用户 A 查看用户 B 的订单。

OAuth 2.0 是一个授权框架,广泛用于第一方和第三方用例。它的主要焦点是 API 消息凭证,称为访问令牌。这传达了用户身份,并且可以使用范围和声明以各种方式锁定。它可供任何 API 客户端使用,包括 Web 和移动客户端。可以为不同的客户端授予不同的API权限。

OAuth 有一个学习曲线,因此您也许可以为当前的项目使用更简单的解决方案。 OAuth 的优势在具有多个 API 和客户端应用程序的大型设置中最为明显。请参阅我最近的回答,了解其工作原理的示例。

使用 OAuth 时,称为授权服务器的中央组件会颁发访问令牌。要了解 OAuth 2.0 解决方案中的各方如何配合,您可以运行我的初始代码示例教程。

© www.soinside.com 2019 - 2024. All rights reserved.