Web应用程序应该如何使用我的公共API

时间:2012-09-17 22:18:29

标签: api http oauth

我正在为服务开发公共HTTP后端API。最重要的是,有一个用户登录的Web应用程序,应该使用后端API来满足用户请求。 API支持OAuth2,Web应用程序是单页面应用程序,包含大量的javascript。

我关心的是浏览器和网络应用应该如何与API对话。我发现了两种可能的方式。

浏览器直接使用API​​

当用户输入他的凭据进行登录时,Web应用程序会将其传递给API并获得OAuth access_token,该文件直接传递给浏览器并存储在某个cookie中。然后,API的每个请求都是通过JSONP直接从浏览器发出的。当用户注销时,Web应用程序会破坏会话。

浏览器与Web应用程序对话,该应用程序与API

进行通信

当用户输入其凭据进行登录时,Web应用程序会将其传递给API并获得OAuth access_token。用户创建会话,access_token存储在会话中。当浏览器需要与API通信时,它会通过Web应用程序。 Web应用程序在会话中使用访问令牌,调用API并将响应传递给浏览器。

这两种方式在性能和安全权衡方面都有利弊。你觉得怎么样?

PS:从我看到的情况来看,Twitter直接从浏览器使用它的公共API,但是通过会话cookie进行身份验证。这意味着他们的API还支持cookie会话?

1 个答案:

答案 0 :(得分:0)

丹,

您提到的选项是常用选项。 您有一个表示层(UI)和一个业务层(API) 根据您将来可能需要的复杂性和可扩展性,选择哪一个是您在应用程序中需要多少层的问题。 如果API层与UI之间存在较大差距,则可能需要引入中间层。 如果差距很大,您将需要一个图层来进行额外处理,抽象出复杂性,并保持UI图层的清晰。

但是,如果你需要的话,在API层顶层的UI层中进行简单处理就可以选择选项1

相关问题