Maison > Article > développement back-end > ios 與 php mysql的互動
想問一下,
我想讓ios與php mysql能夠互動
就是ios上填寫表單後能夠匯入mysql裡
目前是post進入mysql是可以的(postman)
只是現在下一階段有困難
就是如何讓使用者在ios上登入時
php的mysql可以紀錄?是只要用SESSION就好了嗎?
那ios那端會需要甚麼樣的API?
想問一下,
我想讓ios與php mysql能夠互動
就是ios上填寫表單後能夠匯入mysql裡
目前是post進入mysql是可以的(postman)
只是現在下一階段有困難
就是如何讓使用者在ios上登入時
php的mysql可以紀錄?是只要用SESSION就好了嗎?
那ios那端會需要甚麼樣的API?
我有一个疑问,postman只是Chrome的一个浏览器插件用来测试服务端API的。如何可以做到直接交互MySQL?
关于你的问题,登录流程需要改一下。
1.添加authorize表,字段
token | user_id | expires_in | login_at |
---|---|---|---|
xxxx1 | userid1 | timestamp1 | timestamp2 |
xxxx2 | userid2 | timestamp3 | timestamp4 |
2.登录的时候,验证账号密码,如果通过验证,在authorize表将该用户所以的token设为过期,之后插入一条新记录,然后返回该token
3.请求API时使用Token请求,服务端接收到该token,检查authorize表是否存在该token,如果存在,则判断是否过期,如果未过期,进行下一步处理,如果token不存在或者过期,返回HTTP401状态码
登录后给个令牌(token)
首先明确一点,ios这边与后台的交互都是通过API进行。。并且 API 与 MYSQL 之间会有一定的业务逻辑。。
拿你说的问题 应该是这样的流程:
1、ios 做登录操作,通过API POST 上传 账号密码 参数
2、后台PHP 通过POST 接受参数,并与数据库中数据 进行对比 校验
3、通过后 可以生成一个session 然后将session存入数据库,并将session返回给ios客户端
4、ios客户端将session 打包到API请求里面
5、php后台接受任意的请求 查看session是否存在session表里 有的话 请求合法 无的话 请求不合法
另:未考虑 过期机制。。简单的流程
最简单的办法就是使用web的session机制,现有的php代码改动最小甚至不用改。
把给iOS使用的API接口想象成网页里的一个ajax请求就行了,php返回json数据比较方便客户端解析。
举个例子:
现在的php登录可能是这样的:用户通过网页的 form 提交用户名和密码,php查询mysql验证用户信息,如果可以登录就设置session和cookie,标记用户已登录,然后php返回 redirect 响应(登陆前的页面或首页)。
如果是ajax登录,最后一步返回的是json数据,比如 return json_encode(['code' => '1', 'msg' => '登录成功!']);
上面是一个最简单的php+mysql登录的例子,如果你看不明白就先去搜索学习“php ajax登录”。如果能知道上面说的是什么,iOS部分其实不用学习了,你已经会了。iOS使用的Api跟Ajax使用的是一样一样的。
iOS客户端使用HTTP client (推荐 AFNetworking),请求某个URL,php返回json数据即可。关于cookie,session什么的,系统已自动处理,iOS客户端无须手动处理。
Api返回JSON只是方便客户端解析,你也可以返回xml , text, html等任意类似,只要跟客户端协商好就行了。