基于令牌的RESTAPI身份验证
我有一个由轻量级Node.js API备份的移动应用程序。我最近开始探索集成使用基于令牌的身份验证的第三方API服务。此API专为从我的服务器端Node.js代码调用而设计,因为直接从我的移动应用程序调用它会暴露我的敏感用户名/密码信息。其他类似的API只能被称为服务器端(例如Stripe),它们需要使用随每个请求传入的密钥进行身份验证。这种方法对我来说更有意义,因为您实际上并不认为服务器“登录”到另一个API 因此,以下是关于访问基于令牌的API的问题:基于令牌的RESTAPI身份验证,rest,http,authentication,basic-authentication,stateless,Rest,Http,Authentication,Basic Authentication,Stateless,我有一个由轻量级Node.js API备份的移动应用程序。我最近开始探索集成使用基于令牌的身份验证的第三方API服务。此API专为从我的服务器端Node.js代码调用而设计,因为直接从我的移动应用程序调用它会暴露我的敏感用户名/密码信息。其他类似的API只能被称为服务器端(例如Stripe),它们需要使用随每个请求传入的密钥进行身份验证。这种方法对我来说更有意义,因为您实际上并不认为服务器“登录”到另一个API 因此,以下是关于访问基于令牌的API的问题: 调用此API的最佳方法是什么?令牌的生
但这是一个有点毛茸茸的话题。没有明确的攻击向量通过创建两个令牌而被阻止,但它是深度防御。 < P>自从回答了问题2,我将从问题1 开始。 对于基于令牌的身份验证,如您所述,对于每个请求,您都可以拦截实际请求并验证令牌,如果令牌有效,您可以允许请求访问api。 最近,有一个新的标准叫做 Json web标记。下面是关于JWT的描述 JSON Web令牌是一种开放的行业标准RFC 7519方法,用于在双方之间安全地表示声明 IO允许您解码、验证和生成JWT 使用JWT,您可以在每个请求上保存一个DB调用。客户机应在每次请求时发送此令牌(通常在http头中)。在服务器上,截获请求,获取令牌,根据私钥验证令牌,并对用户进行身份验证。令牌可以基于“声明”生成。例如,声明可以是客户端ip地址、用户代理或任何您认为合理的内容。我强烈建议您使用JWT标准对API进行基于令牌的身份验证 现在是问题2
是的,Http是无状态协议。特别是当您使用基于REST的API时,它们必须是无状态的和无会话的。因此,基本的身份验证就足够了。但是,您可能需要进行db调用以验证客户端发送的base64编码用户名和密码。JWT令牌的优点是,您可以避免这种额外的DB调用,并且比基本身份验证安全得多。回答得好!刷新令牌被公开的几率较低,这仅仅是因为您使用它的频率较低?是的,它在不同的上下文中使用。可能会转到其他服务器,这可能更安全。在我的情况下,我的服务器是访问第三方API的客户端。我的服务器从另一个API请求令牌。