在iOS / Node应用程序中使用google / twitter / linkedInauthentication
我正在尝试为我正在开发的几个应用程序制定出最好的架构。
在这两个应用程序,我想利用谷歌/叽叽喳喳/ LinkedIn /等提供用户身份的身份validation。 该应用程序是由一个iOS应用程序,它可以select发送数据到我在node.js中写入的服务器。
我想利用OAuth或者OpenId来处理识别上面的服务器的用户,这样我就不必把我自己的authentication系统。 换句话说,允许用户在select上传数据时重新使用他们的ID。
我还应该注意到,除了识别用户,获取姓名和电子邮件地址之外,目前我还没有打算使用他们的任何API。
我想我有两个select:
-
将授权代码放在iOS客户端中,并使用可以validation的数据将某种密钥传输到服务器。
-
保持iOS客户端相当愚蠢,并处理来自节点服务器的授权。
我可能更喜欢第二个选项,因为这意味着我可以集中身份validation,并能够支持一个网站。 这是我目前的理论。
谁能做这样的事情给我一些关于利弊,OAuth或OpenId的指针,或者链接到一些例子?
在我们以前的应用程序中,我们select了两种方法的组合。 我们希望将我们的用户数据集中到我们的服务器上,以便我们需要在这些服务上进行未来的API调用。 我们还希望为客户端上的用户提供本地oAuth体验。 即:在Android和iOS上,开发者可以通过本地Facebook应用程序(如果可用)运行单点login/授权,而popup一个提供“批准”对话框的webview。 在我看来,这是更好的用户体验。 另外,对于Twitter,oAuth进程可能需要在callback中inputPIN码,这应该在客户端处理。
您可以将客户端检索到的访问令牌传递给服务器进行存储,如果您打算对这些服务进行额外的API调用(如果您希望令牌的寿命较长)(即FB上的离线访问权限) 。
无论如何这主要是用户体验决定。
- 在对Google表单进行多次调用时,API身份validation不适用于第二次调用:请求的身份validation范围不足
- OAuth2服务器:无效或缺lessgrant_type参数
- 我怎样才能发送和JSONweb令牌在浏览器中
- nodejs HTTP摘要authentication不起作用
- Passport.js本地策略不带mongoose
- 设置passport-jwtauthentication
- NodeJS Passport:通过两种策略multilogin – 序列化问题
- 使用nodejs应用程序上的刷新和访问令牌了解身份validationstream程
- 在hapi.jsauthenticationscheme和策略之间有什么区别?