php開發app接口,使用者登入問題
情況是這樣的,之前的用戶登入接口,登入成功以後伺服器不存session
,可能在app那端存著吧。所以即便使用者登入成功,在調某些介面的時候,需要user_id
還是要當作參數傳遞過去,而不是從伺服器的 session
裡取得。
今天想修改登入註冊的接口,我同事說app接口沒有session
的概念,但是我總覺得應該有其他方式將用戶會話存在伺服器。
所以我想請教各位大神:
1. php开发app接口有没有`session`的概念?
2. 如果没有,用户会话是怎么处理的?就是当前是否在登录状态
謝謝大家!
漂亮男人2017-05-16 13:01:53
首先你弄個登陸接口,app調用這個接口,你驗證他傳遞過來的username password 之後,給他返回一個 token 。
token 你建個表保存,表裡存 user_id token expire_data 等字段,注意token 和 user_id 是唯一的。
以後他每次請求其他的接口,只要要把這個token帶給你,你驗證token就可以。
傳遞的token 設定加密/設定過期/保證唯一 基本上就可以了。
仅有的幸福2017-05-16 13:01:53
1.請求頭裡帶用戶 username
和 password
,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端 api
被隨意呼叫。
缺點:每次都互動使用者名稱和密碼,互動量大,且密碼明文傳輸不安全。
2.第一次請求,要求username
和password
,驗證通過,發送cookie
到客戶端, username
和 password
,验证通过,发送 cookie
到客户端, app
保存 cookie
值。
每次请求带上 cookie
。
优点:和 pc
保存cookie< /code> 值。
cookie
。 優點:和 pc
上瀏覽器認證的原理一樣了。
app
以上兩點,只有註冊用戶,才能有權存取業務邏輯。
有大量的不需要註冊資料apitoken
3.制定一個
缺點:隨機串產生規則要保密。🎜🎜如果我的答案解決了你的問題,請點擊
采纳答案
ringa_lee2017-05-16 13:01:53
可以這樣弄,不同使用者透過授權介面取得不同的token,對token 設定好過期時間,讓client每次要求把token放在header內,並定時更新token
滿天的星座2017-05-16 13:01:53
用token來取代傳統的儲存在客戶端cookie中的session_id,然後token在redis等資料庫中作為鍵名,鍵值則為使用者uid,並且可以透過自帶的過期機制來模擬session_id