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

Php 我应该如何为移动应用程序创建API(需要身份验证) 背景,php,api,laravel,authentication,api-design,Php,Api,Laravel,Authentication,Api Design,所以在过去的一周里,我一直在研究API,并且一直在阅读有关概念和编程的书籍 目前,我有一个网站,它是用PHP编程的,使用了一个流行的叫做Laravel的框架。该网站有一个用户数据库,用户可以登录到我的网站上的仪表板,一切工作,因为我希望它为我的网站方面 现在,在我的下一个业务项目中,我将重点创建我的移动应用程序(IOS和Andriod)。我需要这些移动应用程序能够通过应用程序UI登录(而不是通过回调URL重定向到我的站点),以便它们能够查看和管理仪表板 我希望在应用程序中使用的身份验证和授权方法

所以在过去的一周里,我一直在研究API,并且一直在阅读有关概念和编程的书籍

目前,我有一个网站,它是用PHP编程的,使用了一个流行的叫做Laravel的框架。该网站有一个用户数据库,用户可以登录到我的网站上的仪表板,一切工作,因为我希望它为我的网站方面

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

我希望在应用程序中使用的身份验证和授权方法类似于

  • 客户端要求用户通过UI登录
  • 用户输入凭据
  • 客户端发送登录到API的请求
  • API检查凭据是否正确
  • API创建一个令牌,该令牌存储在与用户ID链接的令牌数据库中
  • API返回200 OK,带有json响应或类似的内容
{“代币”:“OLS25usJIay81hdy81”,“到期日”:3/06/2016 14:00}

  • 客户机记住令牌和到期日
  • 每当用户/客户机发出请求,例如
    api/v1/mystuff/orders
    时,它就会发送带有请求的令牌(可能通过http头?)
  • API验证令牌,获取用户ID并查找用户订单
问题 我知道这是一个地狱般的问题,我不是要你们为我的整个软件编程,哈哈,但我需要知道的是

  • 我应该使用什么来创建API(需要是PHP,最好是集成了laravel)
  • 有哪些好的资源可以帮助我编写API
  • 你有什么建议/改变吗
要求
  • 用户名/密码身份验证
  • 令牌授权
  • 通过应用程序用户界面登录(不在我的网站上进行回调)
笔记
  • 我的网站有SSL证书

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

我建议您使用Laravel的JSON令牌身份验证包

您可以在此处看到一些教程:

我还推荐这个API包,它将为您节省大量的工作


如果您需要帮助,您可以从Laracast观看本系列,这需要订阅,但绝对值得。

谢谢,我将查看所有这些资源并与您联系!谢谢,我刚刚看了一些教程和文档。它非常适合我的需要!太好了,很高兴我能提供帮助。@TheAllen jwt auth将为每个登录用户生成一个令牌,使用寿命为一小时,对于angular js这样的web应用程序也可以,但我应该如何处理移动应用程序?我应该一次又一次地登录用户以获取新的令牌吗?当然,这对于移动应用来说不是一个好主意!你的想法是什么?@AliSherafat是的,我认为这对移动应用不是个好主意。通常,在移动应用程序中,用户登录一次,直到注销为止,即使应用程序关闭或一周后打开。因此,您应该将此令牌保留在数据库中,并且会话不应该过期,就像在web应用程序上一样。