我使用 ServiceStack 已经有一段时间了,我喜欢它。但有一件事我想不通。假设使用我的 servicestack 端点的应用程序(ios、android 等)如何使用 facebook 端点“/auth/facebook”?从浏览器中使用此 url“/auth/facebook”时,它工作正常,但响应是 html,而不是 AuthResponse og 可序列化的东西。
此端点是否只能在具有相同解决方案中的 servicestack 的网站上使用?
我使用 ServiceStack 已经有一段时间了,我喜欢它。但有一件事我想不通。假设使用我的 servicestack 端点的应用程序(ios、android 等)如何使用 facebook 端点“/auth/facebook”?从浏览器中使用此 url“/auth/facebook”时,它工作正常,但响应是 html,而不是 AuthResponse og 可序列化的东西。
此端点是否只能在具有相同解决方案中的 servicestack 的网站上使用?
这些东西的工作方式是使用与您的应用程序匹配的 API 密钥将用户重定向到 Facebook。然后用户告诉 Facebook 你的应用没问题,Facebook 将他们重定向回来。这只能通过浏览器完成。你真的有两种选择来解决这个问题:
让用户使用网站向 Facebook 进行身份验证,然后使用来自应用程序的凭据对您的用户进行身份验证。
使用内置的 iOS Facebook 东西并将生成的身份验证令牌发送到应用程序上的端点,您可以将它们保存以供以后使用。
编辑,再澄清一点:
选项1
选项 1.5
与选项 1相同,但不是让用户通过他们的浏览器,而是创建一个UIWebView
控件并将其指向您的 Facebook Auth 端点。然后,您收听来自您的站点的响应,该响应说用户已通过身份验证。我不是一个客观的c,所以我真的无法更详细地了解如何做到这一点。
选项 2
POST
通过自定义端点到服务堆栈的凭据Facebook 登录需要某种浏览器,因为 Facebook 的 cookie 必须与授权您的网站的请求一起传递。这就是 Facebook 如何知道哪些用户想要授权您的网站,以及他们是提出请求的人。