为本机移动应用程序和浏览器设计REST API AS WELL AS第三方OAuth2

时间:2014-04-26 09:04:07

标签: api rest oauth-2.0

我知道一个应用程序,其后端使用OAuth2为本机移动应用程序和桌面浏览器提供服务。

阅读OAuth2参考后,我意识到我只需要使用简单的Resource Owner Password Credentials Grant,因为这些客户端不是第三方客户端。换句话说,我只是使用OAuth2作为简单的登录协议,可以为本机移动应用程序和浏览器提供服务,而不是使用浏览器的会话和应用程序的令牌(我宁愿通过使用OAuth2的密码授权来保持简单)。

但是,我想我将来会向第三方公开API。 我如何设法为第三方以及上述移动应用和浏览器提供服务?

我主要担心的是,我最终会得到一个具有两种不同角色的服务器:一个用于第三方,一个用于移动应用和它直接支持的浏览器。我该怎么做呢?我想我可以使用单个Authorization Code Grant,并从移动/浏览器应用程序中分离第三方应用程序,并且移动/浏览器应用程序将通过向API提供整个范围资源来提供全部功能。

1 个答案:

答案 0 :(得分:0)

如果我会按照您的描述进行操作,我会使用两个可能具有类似功能的API端点,但可以更优化的方式为目标客户端提供服务。

E.g速率限制和其他安全方面非常适合第三方提前,但对于您的内部客户可能有点多余。

对于您的内部客户而言,版本控制和向后兼容性也可能与您的第三方非常不同。

但是,另一方面,你可以通过自己的系统和使用Oauth范围来获得很多好处。

这可能更像是一种哲学的建筑决策。 但从长远来看,由于数据可能不同且使用情况可能不同,我明确地看到了将内部API与外部API分离的充分理由。