想問一下,
我想讓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等任意類似,只要跟客戶端協商就好了。