在 iOS/Node 应用程序中使用 google/twitter/LinkedIn 身份验证



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

在这两个应用程序中,我想利用google/twitter/LinkedIn/etc来提供用户身份的身份验证。该应用程序由一个iOS应用程序组成,该应用程序可以选择将数据发送到我在node.js中写入的服务器。

我想利用OAuth或OpenId来处理根据上述服务器识别用户,这样我就不必放入自己的身份验证系统。换句话说,允许用户在选择上传数据时重复使用其 ID。

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

我想我有两个选择:

  1. 将授权代码放在iOS客户端中,并将某种密钥与数据一起传输到服务器,然后它可以验证这些数据。

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

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

任何做过这样的事情的人都可以给我一些关于优缺点的指示,OAuth 或 OpenId,或者一些示例的链接?

在我们以前的应用程序中,我们选择了这两种方法的组合。我们希望将用户数据集中我们的服务器上,以防将来需要对这些服务进行 API 调用。我们还希望客户端上的用户获得本机 oAuth 体验。即:在Android和iOS上,开发人员可以通过本机Facebook应用程序(如果可用)运行单点登录/授权,而不是弹出一个提供"批准"对话框的Web视图。在我看来,这是一种更好的用户体验。同样对于Twitter,oAuth进程可能需要在回调中输入PIN码,这可能应该在客户端处理。

您可以将客户端检索到的访问令牌传递到服务器进行存储,如果您打算对这些服务进行其他 API 调用,则可以稍后使用,前提是您希望令牌是长期存在的(即:FB 上的脱机访问权限)。

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

最新更新