Facebook OAuth和重定向URI

时间:2014-08-24 13:36:47

标签: facebook oauth-2.0 google-oauth google-openid openid-connect

看看谷歌OpenId连接和Facebook登录我注意到Facebook总是从浏览器点击“重定向URI”。解释一下 - 当用户跟随​​表格的链接

https://www.facebook.com/dialog/oauth?client_id={app-id}&redirect_uri={redirect-uri}

他/她总是被重定向到{redirect-uri}指定的网址。然后,该URL包含可以交换访问令牌的“代码”。

谷歌有类似的方法,但在使用“服务器流”时,{redirect-uri}被谷歌的服务器“击中”。这样,需要交换访问令牌的代码永远不会显示给用户。

看起来FB的方法不太安全,因为访问代码实际上最终会落入攻击者的手中。

  1. 有没有办法让FB将代码发送到重定向URI但实际上没有重定向客户端?像谷歌那样的东西。
  2. 有没有人能够很好地解释为什么FB没有“服务器流”般的行为,只有“隐含流”?

1 个答案:

答案 0 :(得分:3)

您应该从服务器获取代码,然后将其与您的应用秘密一起使用,以在Facebook上交换访问令牌。如果客户端可以看到这个并不重要,因为没有app秘密,该代码是无用的。应用程序机密保留在您的服务器上,永远不会透露给客户端。