我应该如何为移动应用程序创建API(需要身份验证)

时间:2016-06-02 08:58:54

标签: php api laravel authentication api-design

背景

所以我过去一周一直在研究关于API的问题,并且一直在阅读有关概念和编程的概念。

目前,我有一个使用名为Laravel的流行框架在PHP中编程的网站。该网站有一个用户数据库,用户可以登录我的网站上的仪表板,一切正常,我希望它可以用于我的网站。

现在我的业务的下一个项目我专注于创建我的移动应用程序(IOS和Andriod)。我需要这些移动应用程序能够通过应用程序UI登录(不会被重定向到我的网站)使用回调URL),以便他们能够查看和管理仪表板。

我想用于我的应用程序的身份验证和授权方法将类似于

  • 客户要求用户通过用户界面登录
  • 用户输入凭据
  • 客户端发送登录API的请求
  • API会检查凭据是否正确
  • API创建一个令牌,该令牌存储在链接到用户ID的令牌数据库中
  • API返回200 OK,带有json响应或类似

{ "token" : "OLS25usJIay81hdy81", "expiry" : 3/06/2016 14:00}

  • 客户记住令牌和到期日
  • 每当用户/客户端发出api/v1/mystuff/orders之类的请求时,它会发送带有请求的令牌(可能通过http标头?)
  • API验证令牌,获取用户ID并查找用户订单

问题

我知道这是一个问题,我不是要求人们编写我的整个软件哈哈,但我需要知道的是

  • 我应该使用什么来创建API(需要是PHP,最好是laravel集成)
  • 帮助我编程API的有哪些好资源
  • 您有什么建议/更改吗?

要求

  • 用户名/密码验证
  • 令牌授权
  • 通过应用用户界面登录(不在我的网站上进行回调)

备注

  • 我的网站有SSL证书。

1 个答案:

答案 0 :(得分:2)

Laravel绝对是创建API的绝佳选择,您的身份验证和授权计划非常可靠。

我建议你使用Laravel https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps

的JSON令牌认证包

你可以在这里看到一些教程:

https://www.sitepoint.com/how-to-build-an-api-only-jwt-powered-laravel-app/

https://github.com/dingo/api

我还建议使用此API包https://laracasts.com/series/incremental-api-development,这将为您节省大量工作。

如果您需要一些帮助,可以在Laracast上观看此系列{{3}},这需要订阅,但它不仅仅值得。