首页
学习
活动
专区
圈层
工具
发布

关于 Node.js 的认证方面的教程(很可能)是有误的

同时我也一直在 Node/Express 中寻找强大的、一体化的解决方案,来与 Rails 的 devise 竞争。...如果你想要一个类似于 Plataformatec 的 devise 的 Ruby on Rails 的强大的解决方案,你可能会对 Auth0 感兴趣,它是一个使认证成为服务的开创项目。...与 Devise 相比,Passport 只是身份验证中间件,不会处理任何其他身份验证:这意味着 Node.js 开发人员可能会定制自己的 API 令牌机制、密码重置令牌机制、用户认证路由、端点、多种模板语言...但是,如果我只是拷贝这个例子,我讲不了太多,因为没有数据库支持的例子,它假设我只是使用一些设置好的帐户。 没关系,对吧?这只是一个内联网应用程序,开发人员说,下周将分配给我另外四个项目。...如果你真的需要强大的生产完善的一体化身份验证库,那么可以使用更好的手段,比如使用具有更好的稳定性,而且更加经验证的 Rails/Devise。

5.6K90

OAuth 详解 什么是 OAuth?

基本身份验证仍然用作服务器端应用程序 API 身份验证的原始形式:用户发送 API 密钥 ID 和密码,而不是在每次请求时向服务器发送用户名和密码。...OAuth 是 REST/API 的委托授权框架。它使应用程序能够在不泄露用户密码的情况下获得对用户数据的有限访问(范围)。它将身份验证与授权分离,并支持解决不同设备功能的多个用例。...这可用于获取新令牌。要获得刷新令牌,应用程序通常需要经过身份验证的机密客户端。 刷新令牌可以被撤销。在仪表板中撤销应用程序的访问权限时,您正在终止其刷新令牌。这使您能够强制客户端轮换机密。...它通常不支持刷新令牌,并且假定资源所有者和公共客户端在同一台设备上。当您有一个只想使用 OAuth 的 API,但您有老派的客户要处理时。...当人们问您是否支持 OAuth 时,您必须澄清他们的要求。他们是在问您是否支持所有六个流程,还是只支持主要流程?所有不同的流程之间都有很多可用的粒度。 安全与企业 OAuth 的应用范围很广。

5.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    开发中需要知道的相关知识点:什么是 OAuth?

    OAuth 是 REST/API 的委托授权框架。它使应用程序能够在不泄露用户密码的情况下获得对用户数据的有限访问(范围)。它将身份验证与授权分离,并支持解决不同设备功能的多个用例。...另一个令牌是刷新令牌。这要长得多;天,月,年。这可用于获取新令牌。要获得刷新令牌,应用程序通常需要经过身份验证的机密客户端。 刷新令牌可以被撤销。...在仪表板中撤销应用程序的访问权限时,您正在终止其刷新令牌。这使您能够强制客户端轮换机密。您正在做的是使用刷新令牌获取新的访问令牌,并且访问令牌通过网络访问所有 API 资源。...它通常不支持刷新令牌,并且假定资源所有者和公共客户端在同一台设备上。当您有一个只想使用 OAuth 的 API,但您有老派的客户要处理时。...当人们问您是否支持 OAuth 时,您必须澄清他们的要求。他们是在问您是否支持所有六个流程,还是只支持主要流程?所有不同的流程之间都有很多可用的粒度。 安全与企业 OAuth 的应用范围很广。

    1.6K40

    使用OAuth 2.0访问谷歌的API

    使用OAuth 2.0访问谷歌的API 谷歌的API使用的OAuth 2.0协议进行身份验证和授权。谷歌支持常见的OAuth 2.0场景,如那些Web服务器,安装,和客户端应用程序。...登录后,用户被询问他们是否愿意承认你的应用程序请求的权限。这个过程被称为用户的同意。 如果用户授予许可,谷歌授权服务器发送您的应用程序的访问令牌(或授权代码,你的应用程序可以使用,以获得访问令牌)。...此外,它是很好的休息的做法,以避免造成不必要的URI参数的名称。 访问令牌仅适用于所描述的一组操作和资源的scope令牌请求。...注: 在安全的长期存储保存刷新令牌,并继续只要他们保持有效使用它们。限制适用于每个客户端用户发出的组合刷新令牌的数量,以及每个用户在所有的客户,而这些限制是不同的。...如果您不使用抽象令牌创建和签名库写这样的代码,你可能会作出这样会对您的应用程序的安全造成严重影响的错误。对于支持此方案库的列表,请参阅 服务帐户的文档。

    5.5K10

    分享一篇详尽的关于如何在 JavaScript 中实现刷新令牌的指南

    通常,当用户登录时,服务器会生成一对令牌:访问令牌和刷新令牌。访问令牌的生命周期很短,用于对用户进行身份验证并授予他们对受保护资源的访问权限。...通过使刷新令牌无效,服务器可以阻止用户获取新的访问令牌,从而有效地将他们从系统中注销。 总之,刷新令牌是一个强大的工具,可在您的应用程序中维持无缝且安全的身份验证体验。...OAuth 2.0 和 JWT OAuth 2.0 是一种开放的授权标准,使应用程序能够通过授权服务器访问资源服务器(通常是 API)上的资源所有者(通常是用户)的资源。...以下是应用程序如何在 Node.js 应用程序中使用 JWT 刷新令牌的示例: 用户登录到应用程序并将其凭据发送到身份验证服务器。 身份验证服务器验证凭据,生成 JWT 访问令牌和 JWT 刷新令牌。...总的来说,在身份验证过程中加入刷新令牌可以极大地改善用户体验并提高 Web 应用程序的安全性。通过本指南,您现在应该具备在 JavaScript 应用程序中实现刷新令牌所需的知识和工具。

    1.7K30

    [安全 】JWT初学者入门指南

    初始身份验证可以是用户名/密码凭据,API密钥,甚至来自其他服务的令牌。(Stormpath的API密钥身份验证功能就是一个例子。) 有兴趣了解更多?...在OAuth范例中,有两种令牌类型:访问和刷新令牌。首次进行身份验证时,通常会为您的应用程序(以及您的用户)提供两个令牌,但访问令牌设置为在短时间后过期(此持续时间可在应用程序中配置)。...初始访问令牌到期后,刷新令牌将允许您的应用程序获取新的访问令牌。刷新令牌具有设置的到期时间,允许无限制地使用,直到达到该到期点。...Stormpath目前支持三种OAuth的授权类型: 密码授予类型:提供基于用户名和密码获取访问令牌的功能 刷新授权类型:提供基于特殊刷新令牌生成另一个访问令牌的功能 客户端凭据授权类型:提供为访问令牌交换...使用仅可用于身份验证服务的强密钥对您的令牌进行签名。每次使用令牌对用户进行身份验证时,您的服务器必须验证令牌是否已使用您的密钥签名。 不要将任何敏感数据存储在JWT中。

    4.8K30

    从0开始构建一个Oauth2Server服务 AccessToken

    AccessToken 访问令牌是应用程序用来代表用户发出 API 请求的东西。访问令牌代表特定应用程序访问用户数据的特定部分的授权。...从技术上讲,该规范允许授权服务器支持任何形式的客户端身份验证,并提到公钥/私钥对作为一个选项。实际上,大多数消费者服务器都支持使用此处提到的一种或两种方法对客户端进行身份验证的更简单方法。...实际上,实际上支持这一点的服务并不多。 客户端身份验证(必需) 客户端需要为此请求验证自己。...refresh_token(可选)如果访问令牌将过期,那么返回一个刷新令牌很有用,应用程序可以使用它来获取另一个访问令牌。但是,不能为使用隐式授权颁发的令牌颁发刷新令牌。...整个错误响应以 JSON 字符串形式返回,类似于成功响应。下面是错误响应的示例。

    95050

    如何正确集成社交登录

    这通常涉及将一个库插入应用程序中,然后编写几行代码将用户重定向到诸如 Google 或 Facebook 之类的 Provider ,之后令牌将返回到应用程序: 与旧的网站架构相比,这似乎是一个更有吸引力的选项...如今,前端通常调用后端 API ,因此需要一个 API 消息凭据。当开发人员初次接触 OAuth 时,他们通常期望使用从社交 Provider 收到的令牌之一。...由于社交 Provider 提供了验证 ID 令牌的端点,如果 API 使用支持验证 JWT 的安全库,则可以成功实现以下流程: 然而,不应该像这样使用 ID 令牌。...在架构的 API 方面,应使用多种令牌类型。JWT 访问令牌仅设计用于在后端环境内使用。互联网客户端应该使用机密的、不透明的访问令牌作为隐私最佳实践。...相反,每个应用程序实现一个代码流,只与授权服务器进行交互。该机制支持任何可能的身份验证类型,包括 MFA 和完全定制的方法。认证后,可以使用账户链接来确保 API 接收到的访问令牌中的一致身份。

    59910

    微服务架构如何保证安全性?

    例如,应用程序通常会验证访问的凭据,例如用户的 ID 和密码,或应用程序的 API 密钥。 2、访问授权 验证是否允许访问主体对指定数据完成请求的操作。...API Gateway 调用的服务需要知道发出请求的主体(用户的身份)。它还必须验证请求是否已经过通过身份验证。解决方案是让 API Gateway 在每个服务请求中包含一个令牌。...3、身份验证服务器验证 API 客户端的凭据,并返回访问令牌和刷新令牌。 4、API Gateway 在其对服务的请求中包含访问令牌。服务验证访问令牌并使用它来授权请求。...API Gateway 使用 OAuth 2.0 身份验证服务器对凭据进行身份验证,并将访问令牌和刷新令牌作为 cookie 返回。...身份验证服务器验证客户端的凭据,并返回访问令牌和刷新令牌。 4. API Gateway 将访问令牌和刷新令牌返回给客户端,通常是采用 cookie 的形式。 5.

    5.9K40

    如何在微服务架构中实现安全性?

    例如,应用程序通常会验证访问的凭据,例如用户的 ID 和密码,或应用程序的 API 密钥。 访问授权:验证是否允许访问主体对指定数据完成请求的操作。...它还必须验证请求是否已经过通过身份验证。解决方案是让 API Gateway 在每个服务请求中包含一个令牌。服务使用令牌验证请求,并获取有关主体的信息。...应用程序还必须实现访问授权机制,以验证是否允许客户端执行所请求的操作。...身份验证服务器验证 API 客户端的凭据,并返回访问令牌和刷新令牌。 API Gateway 在其对服务的请求中包含访问令牌。服务验证访问令牌并使用它来授权请求。...身份验证服务器验证客户端的凭据,并返回访问令牌和刷新令牌。 API Gateway 将访问令牌和刷新令牌返回给客户端,通常是采用 cookie 的形式。

    5.4K40

    如何在微服务架构中实现安全性?

    例如,应用程序通常会验证访问的凭据,例如用户的 ID 和密码,或应用程序的 API 密钥。 ■访问授权:验证是否允许访问主体对指定数据完成请求的操作。...APIGateway 调用的服务需要知道发出请求的主体(用户的身份)。它还必须验证请求是否已经过通过身份验证。解决方案是让 API Gateway 在每个服务请求中包含一个令牌。...应用程序还必须实现访问授权机制,以验证是否允许客户端执行所请求的操作。...3.身份验证服务器验证 API 客户端的凭据,并返回访问令牌和刷新令牌。 4. API Gateway 在其对服务的请求中包含访问令牌。服务验证访问令牌并使用它来授权请求。...API Gateway 使用 OAuth 2.0 身份验证服务器对凭据进行身份验证,并将访问令牌和刷新令牌作为 cookie 返回。

    5.7K30

    UAA 概念

    这些是系统中每个用户都属于的组,即使用户与数据库中的组之间没有直接关系也是如此。 5.2. 影子用户 通过外部 IDP 进行身份验证的用户仍会在 UAA 数据库的 users 表中分配一条记录。...客户端受简单的凭据(例如客户端 ID 和机密)保护,应用程序使用这些凭据对 UAA 进行身份验证以获得令牌。...implicit 开发人员构建没有服务器后端的单页 Web 应用程序 用户被带到 UAA 上的页面,要求他们向客户授予批准。...刷新令牌仅颁发给在 authorized_grant_types 列表中具有 refresh_token 的客户端。...在确定交叉点之后,还有两种验证可以进一步限制在访问令牌中填充的范围: 用户是否批准了这些范围? 客户是否在授权请求中请求了这些范围? 令牌包含的作用域永远不能超过客户端作用域和用户组之间的交集。

    8K22

    OAuth2.0 OpenID Connect 一

    考虑因素包括应用程序的类型(如基于 Web 或本机移动应用程序)、您希望如何验证令牌(在应用程序中或在后端)以及您希望如何访问其他身份信息(进行另一个 API 调用或拥有它直接编码成令牌)。...身份验证成功后,响应将在第一种情况下包含一个id_token和一个,在第二种情况下仅包含一个。当您有一个应用程序直接与后端对话以获取没有中间件的令牌时,此流程很有用。它不支持长期会话。...这是一个典型的场景: 用户登录并取回访问令牌和刷新令牌 应用程序检测到访问令牌已过期 应用程序使用刷新令牌获取新的访问令牌 重复 2 和 3,直到刷新令牌过期 刷新令牌过期后,用户必须重新进行身份验证...或者,他们的订阅到期。或者,他们被解雇了。在任何时候,管理员都可以撤销刷新令牌。然后,上面的第三步将失败,用户将被迫(尝试)通过身份验证建立一个新会话。...如果他们的帐户已被暂停,他们将无法进行身份验证。 识别令牌类型 有时区分不同的令牌类型可能会造成混淆。

    1.2K30

    动作身份验证

    无身份验证我们支持无需身份验证的流程,适用于用户可以直接向您的API发送请求而无需API密钥或使用OAuth登录的应用程序。...考虑在初始用户交互中使用无身份验证,因为如果他们被迫登录到应用程序,可能会导致用户流失。您可以创建一个“已注销”体验,然后通过启用单独的动作将用户移动到“已登录”体验。...API密钥身份验证就像用户可能已经在使用您的API一样,我们通过GPT编辑器UI允许API密钥身份验证。当我们将密钥存储在数据库中时,我们会对其进行加密,以保护您的API密钥安全。...如果您的API执行的操作比无身份验证流程稍微具有一些后果,但不需要个别用户登录,则采用API密钥身份验证是很有用的。...向您的授权URL发出请求,我们期望得到一个访问令牌,以及可选的刷新令牌,我们将使用该刷新令牌定期获取新的访问令牌。

    47410

    提高 API 性能的 5 大常见方法

    缺点是可能需要多次往返才能从单独的端点组装相关数据。 GraphQL 为客户端提供单一端点,以准确查询他们需要的数据。 客户端指定嵌套查询中所需的确切字段,服务器返回仅包含这些字段的优化有效负载。...令牌与 API 密钥 令牌(例如 JWT)和 API 密钥都用于身份验证和授权,但它们的用途不同。让我们了解两者的简化流程。 令牌流 最终用户登录到前端 Web 应用程序。...身份验证成功后,将颁发并返回 JWT 令牌。 前端使用 Authorization 标头中的 JWT 进行 API 调用。 API 网关拦截请求并验证 JWT(签名、到期和声明)。...经过验证的请求将转发到用户身份验证的服务。 该服务处理请求并与数据库交互以返回结果。 API 密钥流 第三方开发人员在开发人员门户上注册。 门户颁发 API 密钥。...它们通过有序遍历支持高效的范围和点查询。 B+ 树索引 B+ 树索引将所有数据指针存储在叶节点中,而内部节点仅保存用于指导搜索的键。叶节点通过顺序访问链接以进行快速范围查询。

    12100

    「应用安全」OAuth和OpenID Connect的全面比较

    - 抱歉,我不知道他们是否真的有这种感觉,但至少我可以想象他们认为OAuth身份验证远远超出他们之前定义的规范级别,如OpenID 2.0和SAML。...此库尚未支持OpenID Connect(截至2016年6月)。对于要支持OpenID Connect的库,首先,请求参数response_type必须能够采用除代码和令牌之外的其他值。...该项目声称它支持OpenID Connect,但我的猜测是初始实现仅支持OAuth 2.0,并且在稍后阶段添加了OpenID Connect支持。...为此,客户端应用程序的数据库表应该有一个包含开发人员唯一标识符的列。 它经常被遗忘,因为实现授权服务器本身很麻烦,但是还需要提供管理客户端应用程序的机制,以便向公众开放Web API。...虽然他们已经有一个尚未过期的访问令牌,但他们会重复丢弃这样一个有效的访问令牌并请求新的令牌。如果发生这种情况,则会在数据库中累积未使用但无法删除的访问令牌(因为它们尚未过期)。

    3.1K60

    与我一起学习微服务架构设计模式11—开发面向生产环境的微服务应用

    开发安全的服务 四个方面: 身份验证 访问授权 审计 安全的进程间通信 传统的单体应用程序的安全性 应用程序的客户首先登陆获取会话令牌,该令牌通常是cookie。...支持基于登陆的客户端: 客户端通过其凭据发送到API Gateway来登录。API Gateway使用OAuth2.0身份验证服务器对其凭据进行身份验证,并将其访问令牌和刷新令牌作为cookie返回。...客户端在其对API Gateway的请求中包含这些令牌(访问令牌、刷新令牌)。 微服务架构中实现安全性的关键思想: API Gateway负责验证客户端身份。...开发人员有责任确保他们的服务是可观测的,运维人员负责收集服务公开信息的基础设施。 使用健康检查API模式 服务实例需要能够告诉部署基础设施它是否能够处理请求。一个好的解决方案是服务实现健康检查接口。...服务可直接调用异常追踪服务的API,或使用客户端库(如HoneyBadger、Sentry) 使用审计日志模式 记录数据库中的用户操作,以帮助客户支持、确保合规性,并检测可疑行为。

    2.3K10

    8种至关重要OAuth API授权流与能力

    第一版OAuth最初创建于2007年,是作为在Twitter API上处理身份验证的一种方式,此后,它在从企业级代码库到私有项目的各种应用程序中变得非常流行。...移动客户端分类比较棘手,因为他们通常都很擅长存储密钥,但很难给他们一个秘钥。...毕竟,我们是知道,有很多移动端应用是支持用户名密码式的登陆方式的,也有很多应用支持诸如微信这样的第三方授权登陆。...一个例子可以是企业级桌面应用程序,这类应用不经常更新,但仍需要访问API平台。 我们不建议使用它,但是如果您真的需要的话:这个流只适用于私有客户端,并且客户端可以获得一个刷新令牌。...在某些情况下,特别是对于小型服务,两个端点都是同一个系统的一部分,并且可以在内部(例如在数据库中)共享令牌信息。

    2K10

    实战指南:Go语言中的OAuth2认证

    OAuth2的工作原理 OAuth2是一个开放的标准协议,用于授权用户在第三方应用程序之间安全地共享他们的资源。它的工作原理涉及多个角色和流程,包括授权流程概述、OAuth2中的角色和授权类型。...获取访问令牌并调用API 要获取访问令牌并调用API,您可以使用OAuth2客户端库中的Exchange方法交换授权码,然后使用返回的访问令牌进行API调用。...在示例代码中,我们仅打印访问令牌,实际应用中您需要将其存储在会话中,并在需要时添加到API请求的头部。 6....处理过期令牌 OAuth2的访问令牌通常具有一定的有效期,过期后需要重新获取新的访问令牌。为了处理过期令牌,您可以通过在应用程序中检查访问令牌的有效期,并在需要时使用刷新令牌获取新的访问令牌。...在Go中,您可以使用OAuth2客户端库中的TokenSource接口的Token方法来实现刷新令牌的功能。 如何处理权限不足的情况?

    1.8K30

    Go语言中的OAuth2认证

    OAuth2的工作原理OAuth2是一个开放的标准协议,用于授权用户在第三方应用程序之间安全地共享他们的资源。它的工作原理涉及多个角色和流程,包括授权流程概述、OAuth2中的角色和授权类型。...获取访问令牌并调用API要获取访问令牌并调用API,您可以使用OAuth2客户端库中的Exchange方法交换授权码,然后使用返回的访问令牌进行API调用。...在示例代码中,我们仅打印访问令牌,实际应用中您需要将其存储在会话中,并在需要时添加到API请求的头部。6....为了处理过期令牌,您可以通过在应用程序中检查访问令牌的有效期,并在需要时使用刷新令牌获取新的访问令牌。实时刷新:在发现访问令牌过期时立即刷新令牌,以确保无缝的用户体验和持续的访问权限。...在Go中,您可以使用OAuth2客户端库中的TokenSource接口的Token方法来实现刷新令牌的功能。如何处理权限不足的情况?

    1.5K10
    领券