首页 文章

iOS应用和用户身份验证 . OAuth的?

提问于
浏览
4

我正在创建我的第一个iOS应用程序,它基本上会调用我在PHP / MySQL(Laravel)中构建的RESTful API,并将返回的数据显示给用户 .

首先,我需要为iOS用户创建一个注册/登录系统 .

我一直在阅读有关oAuth和oAuth2的内容,但我有点困惑,因为我不确定它是否适用于我的情况 .

我想要的是:

1)用户在其iOS设备上打开应用程序

2)并且需要通过应用程序登录我的API,然后根据服务器上的MySQL数据库检查用户的凭据

我不想要的是:

1)通过第三方应用程序登录的用户(谷歌,脸书,推特等)

2)用户被引导离开应用程序到他们必须提供凭据的网页,然后被重新定向回应用程序 .

oAuth在这种情况下是否合适?我的印象是,它仅用于通过第三方服务验证用户 .

编辑:一个例子可能是ios上的ebay应用程序 . 它拥有自己的用户数据库,允许从应用程序登录和注册,而不是使用任何第三方API

2 回答

  • 5

    OAuth(2)是授权协议 . 它旨在授予您对 other 应用的API的访问权限 . 换句话说,我是 Eugenio's Super App 的开发人员,我想代表(普通)用户调用您的API .

    在您的示例中,您的iOS应用是您API的唯一消费者 . 也许将来你打算扩大这个范围 . 也许不是 .

    无论如何,我建议将用户的身份验证与API本身分开 . 您永远不会知道您的用户群将如何发展 . 也许您计划将您的应用程序出售给消费者 . 即使您不想使用FB,Twitter等登录,用户也可能更愿意这样做 . (除非你和eBay一样大) .

    顺便说一句,使用FB / Twitter登录不再需要在外面导航到他们的网站 . 您可以简单地使用(非常方便)本机应用程序 . 请看这里的例子 .

    或者您可能计划将此应用程序销售给企业用户 . 在这种情况下,他们肯定不想使用您的凭据登录,因为他们已经拥有自己的凭据(例如AD,LDAP等)

    将该流程分开可让您的API随着时间的推移而发展 . 谁知道,也许您的应用可以使用 TouchID 对用户进行身份验证 . Another example here .

    我建议在任何情况下使用基于令牌的方法 . 您的API需要令牌 . JWT轻量级,易于创建/验证和解析 .

    这是如何为API构建JWT的一个很好的总结:https://auth0.com/blog/2014/12/02/using-json-web-tokens-as-api-keys/

  • 0

    我打算做同样的事情,并努力解决同样的问题:使用OAuth或只使用凭据登录 . 但我想我可以给你一些建议 .

    据我所知,你认为OAuth2是一个用Facebook,Twitter等登录的提供商 . 这是错误的 . 但Facebook和Twitter也使用OAuth2 .

    什么是OAuth2用于(非常,非常基本!):

    如果您有像Facebook这样的(Web)服务并希望用户从第三方应用程序(如9gag,soundcloud)登录,您可以使用OAuth2授予他们访问权限(不让他们存储您的凭据) . 它是如何工作的?用户被重定向到Facebook的API . 当他输入他的凭证时,他会被重定向回来并带有访问令牌 . 然后,第三方应用程序可以使用此令牌登录到Facebook以访问用户数据(例如,朋友或发布内容) .

    但正如您已经解释过的,您的iOS应用程序是第一方应用程序(它来自同一个开发人员:您!) . 所以我认为您不需要构建OAuth2 API . 只需使用用户凭据登录即可 .

    这不是一个专业的解释,它是我迄今为止基于ym研究所理解的 . 但我希望它可以帮助你^^

相关问题