【发布时间】:2014-04-18 01:12:51
【问题描述】:
我正在构建一个 REST API 服务,该服务不公开,仅由客户端用于访问服务器上的资源。没有不同消费者的授权,因为唯一的消费者是服务器。
我了解 3 腿 oAuth 是 Facebook 等公共 API 使用的标准,我认为我假设我经过 2 腿身份验证是正确的,但我找不到描述它的有用网站。
我需要使用 oAuth 来访问资源和/或更改它们。显然,这应该受到保护。但我不确定如何在 PHP 中执行此操作。因此,如果用户通过发布请求请求 https://example.com/me/follow/123 之类的内容,则只有在用户登录时才会关注用户 123。
我还希望公共资源只能由认可的客户访问。因此,如果您访问 https://example.com/user/123,则会给出 401,但如果您访问 https://example.com/user/123?client_id=890,则会给出结果。这不会阻止未登录的用户获取公共资源,但会阻止未使用公认客户端的用户。最重要的是,这是我跟踪未来哪些客户正在使用 API 的一种方式。
1) 您如何进行登录并为用户提供随每个 API 请求发送的令牌?
2) 如何保护 API 不被无法识别的客户端使用?
如果我的任何术语或想法不正确,我深表歉意。我对 REST 和 oAuth 的理解仍在不断发展。
【问题讨论】: