我正在开发一个移动应用程序的后端,使用 ASP.NET MVC 4 Web Api 构建一个 RESTful API。该应用程序将在 iOS 和 Android 上运行。我的用户只能使用他们的 Facebook 帐户登录,并且只有在登录后,他们才能使用整个功能。
我对移动应用程序没有太多经验,这更像是一个设计问题:对于谁应该负责 facebook 身份验证,这两种场景中的哪一种(或者可能是第三种?)对您来说似乎更好:
- 移动客户端负责。在不访问后端的情况下,它直接与 facebook 对话,允许用户输入他的凭据,当它从 facebook 获取令牌时,它第一次访问后端,在每个请求中将令牌传递给它。
- 后端 API 负责。移动客户端尝试从中访问资源。后端没有从客户端获取身份验证令牌,因此它重定向到 facebook 登录。用户输入凭据,facebook 回复通过令牌的后端。然后,后端愿意回答有关所需资源的客户端响应。
当然,第二种情况意味着后端应该使用像DotNetOpenAuth这样的包来处理 OAuth,而在第一种情况下,这些都发生在移动客户端中。