OAuth 2.0用于API服务器和移动应用程序


OAuth 2.0 for API server and mobile application

我有一个服务器和一个移动应用程序。服务器提供RESTful API,移动应用程序使用该API。我想使用OAuth 2.0,以便只有授权用户才能获得响应,或者,换句话说,移动应用程序在用户登录时获得访问令牌,以便它可以使用此令牌进行API调用。

通常,OAuth在资源所有者(如我),资源服务器(如Facebook)和客户端(某些第三方应用程序)存在的场景中使用。在我的情况下,只有服务器和移动应用程序。我想使用我的用户的用户名和密码,如果需要获得访问令牌。我的问题如下:

  1. 我不确定我的服务器和我的应用程序对应什么角色?
  2. 我应该实施什么样的流程(和/或授权授予)?

我不确定我的服务器和我的应用程序对应什么角色?

根据https://www.rfc-editor.org/rfc/rfc6749#section-1.1,您的移动应用程序是客户端,托管RESTful api的服务器是资源服务器

我应该实现什么样的流程(和/或授权授予)?

您可能对授权代码grant

感兴趣

正如@rsa所指出的,您还需要滚动您自己的授权服务器。

移动应用程序是客户端,API服务器是资源服务器。由于我拥有两个实体,因此我正在寻找的授予类型是2条腿的"资源所有者密码凭据"。我使用这个库与一些小的修改,以适应我的数据库。谢谢你的帮助。

如果需要使用OAuth 2对客户端进行身份验证,可以使用自己的授权服务器。有很多像这样的开源OAuth 2服务器。

我还建议您看看OAuth,它正是为这个问题域构建的。