php開發app接口,使用者登入問題
情況是這樣的,之前的用戶登入接口,登入成功以後伺服器不存session
,可能在app那端存著吧。所以即便使用者登入成功,在調某些介面的時候,需要user_id
還是要當作參數傳遞過去,而不是從伺服器的session
裡取得。
今天想修改登入註冊的接口,我同事說app接口沒有session
的概念,但是我總覺得應該有其他方式將用戶會話存在伺服器。
所以我想請教各位大神:
1. php开发app接口有没有`session`的概念? 2. 如果没有,用户会话是怎么处理的?就是当前是否在登录状态
謝謝大家!
可以看看jwt
自包含(Self-contained):負載中包含了所有使用者所需的資訊
我是設定了token以及過期時間,用token來驗證
首先你弄個登陸接口,app調用這個接口,你驗證他傳遞過來的username password 之後,給他返回一個 token 。
token 你建個表保存,表裡存 user_id token expire_data 等字段,注意token 和 user_id 是唯一的。
以後他每次請求其他的接口,只要要把這個token帶給你,你驗證token就可以。
傳遞的token 設定加密/設定過期/保證唯一 基本上就可以了。
1.請求頭裡帶用戶
username
和password
,到服务器端做验证,通过才继续下边业务逻辑。优点:防止了服务器端
api
被隨意呼叫。缺點:每次都互動使用者名稱和密碼,互動量大,且密碼明文傳輸不安全。
2.第一次請求,要求
每次請求帶上username
和password
,驗證通過,發送cookie
到客戶端,username
和password
,验证通过,发送cookie
到客户端,app
保存cookie
值。每次请求带上
cookie
。优点:和
pc
保存cookie 值。
cookie
。優點:和
而有些pc
上瀏覽器認證的原理一樣了。app
以上兩點,只有註冊用戶,才能有權存取業務邏輯。有大量的不需要註冊資料api
生成規則,按某些伺服器端和客戶端都擁有的共同屬性產生一個隨機串,客戶端產生這個串,伺服器收到請求也校驗這個串。token
3.制定一個
可以這樣弄,不同使用者透過授權介面取得不同的token,對token 設定好過期時間,讓client每次要求把token放在header內,並定時更新token
用token來取代傳統的儲存在客戶端cookie中的session_id,然後token在redis等資料庫中作為鍵名,鍵值則為使用者uid,並且可以透過自帶的過期機制來模擬session_id
我們公司是,token跟上時間,每次登陸,都會重新刷新token
這是我心懷疑惑的時候,在我們站內提問的
你同事說 app沒有session概念,我覺得不準確!希望我之前的提問對你有幫助!
登入是服務端產生登入成功的標識傳回給客戶端,客戶端請求是帶上登入標識,服務端透過登入表示驗證使用者資訊
安全的做法是
access_token
。這點可以看看微信的api介面;簡單做法,就是
user_id
;