当我使用Facebook的JS SDK对我的应用进行身份验证(使用FB.init方法)时,我只需要我的应用ID,它不需要我的应用密钥和/或应用密钥。然而,当我使用PHP SDK时,它需要我的应用程序密钥(至少在我学习的示例中使用了应用程序ID和应用程序密钥)。
是否安全,推荐使用JS SDK进行身份验证?JS SDK中的身份验证流到底是如何发生的?
谢谢,Vineet
发布于 2011-08-08 20:59:32
我也在调查身份验证的安全性--我认为自从你问这个问题以来,事情已经改变了,所以当你问这个问题时,可能这个信息是不正确的。
新版本的JS SDK使用OAuth 2.0。这有很好的文档记录-请查看OAuth 2.0 site以了解详细信息。
关于SDK是否需要应用程序秘密的问题-我对此有一点困惑。在应用服务器端,库表明JS SDK使用应用秘密对cookies进行签名(请参阅facebook-python sdk中的函数get_user_from_cookie )-然而,我完全不清楚JS SDK如何知道应用秘密。我猜当它在认证过程中直接与FB对话时,它可以动态地从FB获得它,但我不确定。
(编辑:我认为JS SDK直接从FB获得了带有应用秘密的cookie - JS SDK永远不会知道应用秘密)。
没有完全回答您的问题,但可能会更多地说明这是如何工作的。
发布于 2011-02-17 22:12:12
另一个需要注意的问题是,不要将从客户端获得的FB用户对象用于服务器端的任何内容。这是因为如果有人编写一个脚本,而不是调用fb.api '/me‘,它会向你的应用程序发送一个带有另一个用户ID的“假”JSON user对象。如果您正在对用户进行任何类型的服务器端处理,那么我认为您真的需要进行某种服务器端身份验证。
https://stackoverflow.com/questions/5028448
复制相似问题