如何使用Facebook验证我的移动应用程序和底层服务器?

时间:2011-03-02 18:44:56

标签: iphone python django google-app-engine

我想要的行为很简单:

  1. 用户启动应用程序。
  2. 系统会提示用户输入他们的Facebook用户名和密码。
  3. 成功登录后,用户现在可以通过应用程序和Web服务器进行身份验证。现在服务器中的用户与Facebook ID相关联。所有进一步的HTTP请求都将具有在Web服务器上进行身份验证的cookie。
  4. 据我所见,这种行为存在一些问题。

    根据服务条款,您无法以编程方式登录;登录必须通过Facebook网站或SDK完成,两者都是互动的。因此,我无法创建自己的表单,将用户名和密码传递给我的Web服务器,在那里登录并使用成功的cookie集进行响应。

    安全

    如果用户通过应用程序登录,则仅对应用程序进行身份验证。将Facebook ID传递到我的Web服务器可以完成,但考虑到找出用户的FB ID是多么容易,欺骗服务器会非常容易。我考虑过在应用程序中自动生成密码,但这只会减少欺骗的窗口,并且不会完全关闭漏洞。

    (安全对我的项目来说实际上并不重要,但我不想留下这么明显的漏洞。)


    我的技术是用于移动应用程序的iOS 3.0+和用于服务器的Google App Engine,运行Django的修改版本。

    我制定的解决方案,我认为解决了这些限制,如下:

    1. 用户启动应用程序。
    2. 应用程序检查当前设置的cookie是否在服务器上进行了身份验证。
    3. 如果没有,请通过URL方案将Safari打开到Web服务器上的实际页面,并选择通过Facebook(或我以后添加的任何其他身份验证系统)登录。
    4. 用户进行身份验证,服务器创建与Facebook ID关联的用户(如有必要)。
    5. 成功登录,服务器重定向到以cookie ID作为参数调用移动应用程序URL方案的页面。
    6. 成功?
    7. 所以,我的问题是:我做对了吗?我的任何假设都是错的吗?

1 个答案:

答案 0 :(得分:-1)

您可以尝试使用OAuth框架