0

我目前正在努力构建一个 API 驱动的 symfony2 网络应用程序。只是一个学习 symfony2 和 REST 的基本应用程序。

它将基于 RESTful api。对 API 的调用将使用 OAuth 进行身份验证。

例如:如果客户端应用程序想要通过 API 获取数据(有关所有水果的信息),它需要向 url 发出 GET 请求并将访问令牌作为参数传递。所以 url 看起来像这样。

http://www.mysite.com/api/fruits.json?=<access token>

现在的问题是,我的一项操作也需要相同的数据。

我需要一些帮助。为了在我的一项操作中从上面的 url 获取数据,我还需要在 url 中发送访问令牌。

我如何获得此访问令牌?

是否应该有一个固定令牌用于我的应用程序中的所有此类调用?

4

1 回答 1

1

如果您尝试在这里做您想做的事情,您的基本应用程序项目将变得多方面。

基本上,您需要为此实现一个身份验证服务器。i) 首先,应用程序应该注册一个范围;
ii) 用户使用应用程序登录到认证/授权服务器。
iii) 服务器验证应用程序是否有权访问范围以及用户是否已在您的系统中注册。
iv) 服务器创建一个访问令牌(它是一个 HMAC 签名字符串)并返回到您的应用程序。
v) 然后应用程序使用令牌访问端点(restful API)。
vi) 然后 RESTful 服务在内部将令牌发送到服务器并获取为其调用的 customerID 并执行它应该执行的操作。

我曾经写过一个关于如何创建 OAuth 服务/提供者的答案——高效的 OAuth2.0 服务器/提供者如何工作?

此外,OAuth 的设计使得客户端应用程序/第 3 方软件可以代表他访问用户的资源。一个非常简单的例子是 = 一个应用程序代表您在您的 Facebook 墙上发布一些内容。它实际上是访问您拥有的资源(墙)并发布到它。您不需要 OAuth 只是为了获取一些数据 - 还有其他方法可以保护 API。

于 2013-05-09T05:16:34.473 回答