5

我在我的 api 中使用 spring 框架和 REST 架构。目前,我通过在每次通话中发送用户名和密码来验证我的 REST 通话。用户存储在我的数据库中。

现在我计划使用 oauth 2.0 来访问我的受保护资源,并且我还计划使用 Facebook 登录作为身份验证机制。

我已经阅读了 spring-security-oauth2 并在一个小例子中实现了它工作正常。

我已经阅读了 spring-social 并且已经实现了它并且可以访问 facebook api。

现在我只想知道如何使用 facebook 登录,然后使用 oauth 2.0 来保护我的资源。

任何帮助将不胜感激。

4

1 回答 1

3

您不希望使用 Facebook 颁发的访问令牌来保护您自己的资源。Facebook 令牌代表您的应用程序、Facebook 和您的用户之间的三方协议。如果您想使用 OAuth 来保护您自己的资源,那么这些资源的使用者、您的服务器以及在您的服务器上拥有这些资源的用户之间的协议完全不同。

可以这样想:当您使用 Facebook 的 API 时,您的应用程序 (A) 是消费者,Facebook (FB) 是提供者,并且有一个普通用户 (U1) 将它们连接在一起。但是当有人在你的服务器上消费资源时,你的应用程序 (A) 是提供者的角色,其他一些应用程序 (X) 是消费者,并且有一个普通用户 (U2) 将它们连接在一起。可能是同一个人(例如,U1 == U2)同意这两种情况下的安排,但提供者和消费者的角色已经改变。

我想可能有一种方法可以让 Spring Security for OAuth 发布与 Facebook 发布的相同的访问令牌,但这并不是一个好主意。

于 2013-02-13T15:03:59.780 回答