授予Rails应用程序API访问权限的最佳身份validation方法

我想为我的网络应用提供经过身份validation的API访问。 这种服务的消费者通常是其他网站/服务。

validation这些用户的最佳方法是什么? OAuth,openID,http身份validation?

在我们的工作中,对于“哪个最好?”的答案如此之多。 是“这取决于”。 🙂

  • HTTP身份validation – 如果您已经让客户通过ID和密码登录您的服务,您可能只需要做很少的工作就可以很好地使用您的API。 如果您的API基本上是单一用途的,并且不需要详细的权限,那么您可以在这里快速完成工作。

  • API令牌 – 如果您希望客户端能够在不提供密码的情况下轻松进行身份validation(请考虑构建与您的API交互的服务的公司;也许IT部门不希望开发团队知道密码;等等) ,然后将随机API令牌àGitHub附加到用户帐户可能是最快捷的方式。 作为奖励,您可以提供一种重新生成API令牌的方法,而无需更改帐户密码。

  • OAuth – 如果您有多个权限或想要更精细地控制客户端访问API的方式和时间,OAuth是一个不错的选择(OAuth2更容易使用,IMO,并支持多种获取访问令牌的方法 )。 此外,许多语言都有库,gem等,可以简化OAuth工作流程。

我会说“最好”的方法是oAuth。 它更灵活,可以独立于应用程序进行进一步使用。 我正在使用oAuth来validation我的客户端(应用程序)。

;)