在应用程序中使用FacebookAuthProvider

时间:2013-05-12 16:58:51

标签: api servicestack

我已经使用ServiceStack很长一段时间了,我喜欢它。但有一点我无法弄清楚。 应用程序(ios,android等)如何使用我的servicestack端点,假设使用facebook端点“/ auth / facebook”? 当从浏览器使用这个URL“/ auth / facebook”时它工作正常,但响应是html,而不是AuthResponse og可序列化的东西。

此端点仅用于同一解决方案中具有servicestack的网站吗?

1 个答案:

答案 0 :(得分:2)

这些东西的工作方式是使用与您的应用匹配的API密钥将用户重定向到Facebook。然后用户告诉Facebook你的应用程序没问题,Facebook重定向它们。这只能通过浏览器完成。你真的有两个选择来解决这个问题:

  • 让用户使用网站对Facebook进行身份验证,然后使用应用中的凭据对您的用户进行身份验证。

  • 使用内置的iOS Facebook内容,并将生成的身份验证令牌发送到您应用的端点,您可以将其保存以供日后使用。

编辑,更多一点澄清:

选项1

  1. 用户访问您的网站
  2. 用户点击您的Auth With Facebook按钮
  3. 用户将被发送到您在Service Stack中设置的Facebook端点
  4. 用户被服务堆栈重定向到Facebook
  5. 用户从Facebook重定向回服务堆栈,并在网址中添加令牌
  6. 您可以将令牌保存在数据库中,并告诉用户他们现在可以通过Facebook使用您的应用。
  7. 选项1.5

    选项1 相同,但不是让用户通过浏览器,而是创建UIWebView控件并将其指向您的Facebook Auth端点。然后,您会收听来自您网站的回复,其中说明用户已通过身份验证。我不是一个客观的c,所以我无法真正了解如何做到这一点。

    选项2

    1. 使用iOS Facebook API并处理身份验证as seen here
    2. POST通过自定义端点提供服务堆栈的凭据
    3. 在数据库中保存凭据,并在将来使用它们代表用户进行呼叫。
    4. Facebook登录需要某种浏览器,因为Facebook的cookie必须与请求授权您的网站一起传递。这就是Facebook知道哪些用户想要授权您的网站,他们是提出请求的人。