Cordova - 使用客户端Facebook Oauth的安全性

时间:2015-11-13 12:15:15

标签: cordova laravel-5 ionic-framework facebook-oauth

我目前正在制作一款需要Facebook Auth的Ionic Cordova应用程序。 我正在使用Nic Raboy非常简单的plugin。我已经制作了一个图表来说明当前的流量。 enter image description here

问题是:如果以某种奇怪的方式,对手,知道我的(Laravel 5.1)服务器上的注册路径;他们不能只是get the Facebook ID而只是组成一个伪访问令牌+其他数据,并代表其他人创建一个用户?

即使假设这不是问题,我如何确保登录的用户是登录的实际用户?由于注册/登录使用Facebook作为身份验证是相同的,我假设服务器正在检查某些值。使用Facebook Access令牌对我来说是有意义的,但由于该令牌经常发生变化,因此对我来说似乎并不可靠。

我还看了一下Laravel的社交网站,但它似乎只适用于视图,我显然不能,因为我使用服务器作为REST服务器。

任何帮助表示赞赏。谢谢。

1 个答案:

答案 0 :(得分:1)

通常,您的服务器会直接与FB通话。接受的方法是:

  1. Cordova应用程序执行握手并从Facebook App获取 FacebookID 访问令牌和其他凭据。
  2. Cordova应用程序将此信息发送到您的服务器。
  3. 重要提示:服务器使用这些凭据并直接与FB对话。通过这种方式,服务器通常使用访问令牌与FB进行通信来执行验证。使用访问令牌,它从FB获取信息,确保一切都匹配。例如,它会检查从Cordova应用程序发送的 FacebookID 是否与直接从FB检索到的 FacebookID 相同。
  4. 可以找到有关此方法的更多信息here。所附链接具体说明:

    The call will need to be server-to-server, since it involves your app secret.
    

    这种方法通常可以确保没有第三方攻击。即使有人知道你的facebook id(他们可以轻易获得,因为它是公开的),他们也不能假装你,因为他们缺少访问令牌(过期)。