我正在为服务开发一个公共HTTP后端API.最重要的是,有一个用户登录的Web应用程序,应该使用后端API来满足用户请求.API支持OAuth2,Web应用程序是单页面应用程序,带有大量的javascript.
我担心的是浏览器和Web应用程序应该如何与API通信.我发现了两种可能的方法.
当用户输入他的凭据进行登录时,Web应用程序会将其传递给API并获得OAuth access_token,该权限直接传递给浏览器并存储在某个cookie中.然后,API的每个请求都是通过JSONP直接从浏览器发出的.当用户注销时,Web应用程序会破坏会话.
当用户输入其凭据进行登录时,Web应用程序会将其传递给API并获得OAuth access_token.用户创建会话,access_token存储在会话中.当浏览器需要与API通信时,它会通过Web应用程序.Web应用程序在会话中使用访问令牌,调用API并将响应传递给浏览器.
两种方式都有性能和安全权衡的利弊.你怎么看?
PS:从我所看到的,twitter直接从浏览器使用它的公共API,但传递会话cookie进行身份验证.这意味着他们的API还支持cookie会话?
担,
您提到的选项是常用的选项。您有一个表示层(UI)和一个业务层(API),选择哪一个取决于您未来可能需要的复杂性和可扩展性,您的应用程序需要多少层。如果 API 层和 UI 之间存在很大差距,您可能需要引入中间层。如果差距很大,您将需要一个层来进行额外的处理,抽象复杂性并保持 UI 层整洁。
但如果您需要的只是在 API 层之上的 UI 层中进行简单处理,请选择选项 1
| 归档时间: |
|
| 查看次数: |
261 次 |
| 最近记录: |