2

我将构建一个移动(和网络)应用程序,它将允许电子邮件/密码注册以及社交(facebook、google)注册。本机或 Web 应用程序将调用 REST Web 服务(由 Spring OAuth2 保护)。社交登录将由本机 /web 应用程序处理。如果用户登录,REST 服务将没有任何线索。在电子邮件注册的情况下,用户名/密码将传递给 WS。鉴于事实,保护 REST 服务的标准或好的方法是什么?有类似架构的经验吗?

我们正在经历的几个想法:

  1. 在启动应用程序开始时,将设备 ID 传递给 WS。WS 会以静默方式(使用 apple/google )向设备发送包含一个授权码的推送通知。此代码将用于 OAuth2 身份验证。但不确定如何在这里处理 Web 应用程序。
  2. 用户登录到 social 后,从社交提供者处获取社交 ID 传递令牌。将社交访问令牌和此 ID 传递给 WS。WS 将根据 id 调用提供者 oauth 服务(例如https://graph.facebook.com/me?fields=id&access_token=XXX)验证令牌。
4

1 回答 1

0

最后我们决定使用选项#2,因为它看起来更健壮,并且许多项目都使用了类似的架构。我们将通过安全 HTTP 将社交 oauth 令牌传递给 REST 服务。

于 2015-01-28T03:49:41.563 回答