gpt4 book ai didi

api - Web 应用程序应如何使用我的公共(public) API

转载 作者:可可西里 更新时间:2023-11-01 15:14:56 26 4
gpt4 key购买 nike

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

我关心的是浏览器和网络应用程序应该如何与 API 通信。我找到了两种可能的方法。

浏览器直接使用API​​

当用户输入他的凭据进行登录时,Web 应用程序将它们传递给 API 并获得一个 OAuth access_token,它直接传递给浏览器并存储在一些 cookie 中。然后通过 JSONP 直接从浏览器向 API 发出每个请求。当用户注销时,网络应用会销毁 session 。

浏览器与网络应用对话,网络应用与 API 对话

当用户输入他的凭据进行登录时,网络应用程序将它们传递给 API 并获得一个 OAuth access_token。与用户创建 session ,access_token 存储在 session 中。当浏览器需要与 API 对话时,它会通过 Web 应用程序。 Web 应用程序在 session 中使用访问 token ,调用 API,并将响应传递给浏览器。

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

PS:据我所知,twitter 直接从浏览器使用它的公共(public) API,但传递 session cookie 以进行身份​​验证。这意味着他们的 API 也支持 cookie session ?

最佳答案

丹,

您提到的选项是常用的选项。您有一个表示层 (UI) 和一个业务层 (API)选择哪一个是你的应用程序需要多少层的问题,这取决于你 future 可能需要的复杂性和可扩展性。如果你的 API 层和你的 UI 层之间有很大的差距,你可能想要引入一个中间层。如果差距很大,您将需要一个层来进行额外处理,抽象复杂性并使您的 UI 层保持整洁。

但如果您只需要在 API 层之上的 UI 层中进行简单处理,请选择选项 1

关于api - Web 应用程序应如何使用我的公共(public) API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12467867/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com