mysql - 【php】關於php開發app介面的問題,求有經驗的大神解答
某草草
某草草 2017-05-16 12:59:53
0
10
678

php開發app接口,使用者登入問題

情況是這樣的,之前的用戶登入接口,登入成功以後伺服器不存session,可能在app那端存著吧。所以即便使用者登入成功,在調某些介面的時候,需要user_id還是要當作參數傳遞過去,而不是從伺服器的 session裡取得。

今天想修改登入註冊的接口,我同事說app接口沒有session的概念,但是我總覺得應該有其他方式將用戶會話存在伺服器。

所以我想請教各位大神:

1. php开发app接口有没有`session`的概念?
2. 如果没有,用户会话是怎么处理的?就是当前是否在登录状态

謝謝大家!

某草草
某草草

全部回覆(10)
巴扎黑

可以看看jwt
自包含(Self-contained):負載中包含了所有使用者所需的資訊

巴扎黑

我是設定了token以及過期時間,用token來驗證

漂亮男人

首先你弄個登陸接口,app調用這個接口,你驗證他傳遞過來的username password 之後,給他返回一個 token 。

token 你建個表保存,表裡存 user_id token expire_data 等字段,注意token 和 user_id 是唯一的。

以後他每次請求其他的接口,只要要把這個token帶給你,你驗證token就可以。

傳遞的token 設定加密/設定過期/保證唯一 基本上就可以了。

仅有的幸福

1.請求頭裡帶用戶 usernamepassword ,到服务器端做验证,通过才继续下边业务逻辑。
优点:防止了服务器端 api 被隨意呼叫。
缺點:每次都互動使用者名稱和密碼,互動量大,且密碼明文傳輸不安全。

2.第一次請求,要求usernamepassword ,驗證通過,發送cookie 到客戶端, usernamepassword ,验证通过,发送 cookie 到客户端, app 保存 cookie 值。
每次请求带上 cookie
优点:和 pc 保存cookie 值。

每次請求帶上 cookie

優點:和 pc 上瀏覽器認證的原理一樣了。
app以上兩點,只有註冊用戶,才能有權存取業務邏輯。

而有些

有大量的不需要註冊資料apitoken
3.制定一個

生成規則,按某些伺服器端和客戶端都擁有的共同屬性產生一個隨機串,客戶端產生這個串,伺服器收到請求也校驗這個串。
缺點:隨機串產生規則要保密。

采纳答案

如果我的答案解決了你的問題,請點擊
🎜🎜
左手右手慢动作

可以這樣弄,不同使用者透過授權介面取得不同的token,對token 設定好過期時間,讓client每次要求把token放在header內,並定時更新token

滿天的星座

用token來取代傳統的儲存在客戶端cookie中的session_id,然後token在redis等資料庫中作為鍵名,鍵值則為使用者uid,並且可以透過自帶的過期機制來模擬session_id

大家讲道理

我們公司是,token跟上時間,每次登陸,都會重新刷新token

PHPzhong

這是我心懷疑惑的時候,在我們站內提問的

  1. 你同事說 app沒有session概念,我覺得不準確!希望我之前的提問對你有幫助!

Ty80

登入是服務端產生登入成功的標識傳回給客戶端,客戶端請求是帶上登入標識,服務端透過登入表示驗證使用者資訊

習慣沉默

安全的做法是access_token。這點可以看看微信的api介面;

簡單做法,就是user_id;

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板