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

djt*_*djt 4 php oauth ios oauth-2.0 laravel

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

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

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

我想要的是:

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

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

我不想要的是:

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

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

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

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

Eug*_*ace 5

OAuth(2)是授权协议.它旨在授予您对其他应用的API访问权限.换句话说,我是Eugenio的超级应用程序的开发人员,我想代表(普通)用户调用您的API.

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

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

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

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

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

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

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