在iOS / Node应用程序中使用google / twitter / linkedInauthentication

我正在尝试为我正在开发的几个应用程序制定出最好的架构。

在这两个应用程序,我想利用谷歌/叽叽喳喳/ LinkedIn /等提供用户身份的身份validation。 该应用程序是由一个iOS应用程序,它可以select发送数据到我在node.js中写入的服务器。

我想利用OAuth或者OpenId来处理识别上面的服务器的用户,这样我就不必把我自己的authentication系统。 换句话说,允许用户在select上传数据时重新使用他们的ID。

我还应该注意到,除了识别用户,获取姓名和电子邮件地址之外,目前我还没有打算使用他们的任何API。

我想我有两个select:

  1. 将授权代码放在iOS客户端中,并使用可以validation的数据将某种密钥传输到服务器。

  2. 保持iOS客户端相当愚蠢,并处理来自节点服务器的授权。

我可能更喜欢第二个选项,因为这意味着我可以集中身份validation,并能够支持一个网站。 这是我目前的理论。

谁能做这样的事情给我一些关于利弊,OAuth或OpenId的指针,或者链接到一些例子?

在我们以前的应用程序中,我们select了两种方法的组合。 我们希望将我们的用户数据集中到我们的服务器上,以便我们需要在这些服务上进行未来的API调用。 我们还希望为客户端上的用户提供本地oAuth体验。 即:在Android和iOS上,开发者可以通过本地Facebook应用程序(如果可用)运行单点login/授权,而popup一个提供“批准”对话框的webview。 在我看来,这是更好的用户体验。 另外,对于Twitter,oAuth进程可能需要在callback中inputPIN码,这应该在客户端处理。

您可以将客户端检索到的访问令牌传递给服务器进行存储,如果您打算对这些服务进行额外的API调用(如果您希望令牌的寿命较长)(即FB上的离线访问权限) 。

无论如何这主要是用户体验决定。