2011-04-03 43 views
2

我正在使用Python和Django为Facebook构建应用程序。我正在研究与Facebook身份验证API集成的不同解决方案。Facebook认证 ​​- 有不同的方法吗?

到目前为止,我已经找到了两个可行的解决方案:

我已经尝试过的第一个,它似乎很好地工作。我刚刚阅读了第二篇,它似乎使用Facebook JavaScript SDK。

我的问题是:这两个库做不同的身份验证?我是否正确理解第一个人直接使用OAuth与Facebook进行通信并从那里获取身份验证令牌,而第二个人只是显示一些JavaScript丰富的中间站点,它们从Web浏览器级别请求身份验证令牌?

一般来说:是否有不同的方式去facebook认证(JavaScript SDK vs其他)?为什么JavaScript SDK是推荐的方法?并且是“别的东西”的方法不能生产饼干,因此效率低下...

回答

3

当你使用后端实现(python,PHP,Perl等)时,你通常必须使用URL重定向图形API)与Facebook和用户进行交互。就我个人而言,我认为这不是一个好的用户体验。

使用javascript的SDK,你可以做一切内联。这意味着用户永远不必离开你的页面授予权限,发布到墙上,发送请求等。你仍然可以使用后端库做其他事情。如果您正在进行任何“离线”活动或订阅实时活动,则需要进行此操作。

最后,您最终获得相同的授权权限。两家公司都对Facebook进行类似的调用,以获得有效的授权会话。所以无论是一个,还是两者都有效。

+0

对于任何非平凡的应用程序,您可能会最终设置两者。 – 2011-04-03 23:30:57

+1

@Filip你的意思是两种方法?为什么会这样 - 你能解释一下流程的流程吗?我几次阅读FB文档,我发现他们真的很混乱。他们非常技术性,并没有真正解释这一切背后的想法。 – julkiewicz 2011-04-03 23:53:03

+1

@julkiewicz,是的,使用这两种方法是描述它的更好方法。就像布伦特说的那样,JS SDK将以您的名义处理用户,并妥善管理cookies,并在每次请求时将其推送到您的应用程序中。现在,通过cookie中用户的授权详细信息,您可以在后端直接与Graph API进行通信,例如向用户执行查询(获取用户朋友,设置用户状态消息等)并坚持数据库中的任何相关细节。 – 2011-04-04 10:09:56