【发布时间】:2015-07-24 02:59:03
【问题描述】:
我正在创建一个具有 REST API 的后端,该 API 将从移动应用程序中使用。由于该应用程序仅适用于移动设备,因此我们不使用电子邮件和密码来创建帐户/登录,而是使用电话号码,然后他们会收到带有 SMS 消息的密码,以确认他们拥有该号码。
在我通过 pin 号确认用户就是他们所说的人之后,我应该如何验证未来的 API 请求?
我的第一个想法是创建一个令牌并将其返回给应用程序。我的第二个想法是使用 OAuth,但后来我对哪种方法适用于电话号码/短信登录方法(2/3 腿、授权等)感到困惑。我不完全理解将 OAuth 与我们自己的应用程序一起使用时这可能如何工作(而不是 OAuth 与其他提供商一起使用)。令牌似乎是更简单的路线。
如果我使用令牌,在用户注销之前使用相同的令牌是否不好? (通过 https)。我假设值得付出额外的工作来使它们的过期时间比平均时间长一点。用户会话。
不幸的是,它似乎不是一个适用于电话号码的交钥匙解决方案。我正在使用 Meteor,但我希望自己使用 Node 模块(通过在 Meteor 服务器上公开连接)。
非常感谢任何帮助!
【问题讨论】:
-
你能澄清一下,你在移动设备上使用流星吗?我没有解决方案,但我有兴趣自己找出答案。此外,如果您通过流星使用 Cordova,您如何进行用户管理?这将是我希望看到添加到此包中的内容:github.com/meteor-useraccounts/core
-
当然,我们使用的是旧版原生应用,所以没有 Objective-DDP 或 Cordova。因此,对于这种情况,从应用程序的角度来看,它几乎是一个“节点”应用程序。用户管理通过atmospherejs.com/dispatch/accounts-sms 完成,通过短信登录/创建账户。
-
啊,有道理。抱歉,我帮不上什么忙,因为我还不需要这样做。如果你弄明白了,请回答你的问题。最终,社区将希望标准化真正的原生 API。
-
会的。到目前为止,计划是使用加密和签名的 Json Web 令牌 (JWT),然后使用 Iron Router 添加自定义中间件来授权每个请求。还有 Restivus,但对于这个用例来说太僵化了。