php從入門到精通小程序如何實現登錄狀態

給大家帶來的內容是關於小程序和ThinkPHP5結合實現登錄狀態(附代碼),有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

微信小程序中,一般會涉及三種登錄方式:

2. 自有的賬號註冊和登錄

3. 使用其他第三方平臺賬號登錄

php從入門到精通小程序如何實現登錄狀態

1. 小程序通過wx.login獲取code,發往後臺,後臺以此向微信API換取session_key和openid;

2. 隨機生成字符串作為sessionid(key),session_key和openid作為value,存入redis中,為了安全,

存入的時候還應設置一個超時的時間;

3. 客戶端將返回的sessionid存入storage,調用那些需要登錄後才有權限的訪問的後臺服務時,

你可以將保存在storage中的sessionid取出並攜帶在請求中,後臺代碼中獲取到該sessionid後,

從redis中查找是否有該sessionid存在,存在的話,即確認該session是有效的,

繼續後續的代碼執行,否則進行錯誤處理。

採用的是自由的賬號註冊和登錄,主要思路和流程如下:

1. 進入小程序首先通過wx.login獲取code,通過後臺接口發往後臺,後臺以此向微信API換取session_key和openid;

2. 判斷數據庫中有無該openid【唯一標識,需和賬號(手機號)綁定】,

-- 如果數據庫中沒有該openid(說明沒有該賬號):

判斷傳過來的手機號是否為空(登錄時會將手機號存到全局變量),如果不為空,則說明是剛登錄過的,然後綁定openid及openid_time(當前時間),

如果手機號也為空,說明沒登錄過,則返回登錄失敗信息,使客戶端跳轉登錄頁;

-- 如果數據庫中有該openid(說明數據庫中有相對應的手機號),

判斷openid_time距現在的時間是否大於4小時,如果大於,返回登錄失敗信息,使客戶端跳轉登錄頁;

如果小於,則更新openid_time為當前時間,然後返回登錄成功信息及手機號。

3. 登錄頁面:判斷數據庫中該手機號是否存在,如果存在,則更新openid_time為當前時間,如果不存在,則添加該手機號用戶。然後跳轉首頁執行wx.login方法,登錄成功,保持登陸狀態。

詳細流程:

歡迎大家一起加入學習PHP的這個大家庭,會有最新的資料發給大家(企鵝群858053130) 邀請你一起去學習一下!

步驟1:進入小程序首先通過wx.login獲取code,通過後臺接口發往後臺,後臺以此向微信API換取session_key和openid;

php從入門到精通小程序如何實現登錄狀態

步驟2:判斷數據庫中有無該openid【唯一標識,需和賬號(手機號)綁定】;

php從入門到精通小程序如何實現登錄狀態

php從入門到精通小程序如何實現登錄狀態

步驟3:登錄頁面:登錄成功後,跳轉首頁執行wx.login方法,然後登錄成功,保持登陸狀態。

php從入門到精通小程序如何實現登錄狀態

php從入門到精通小程序如何實現登錄狀態

根據微信API獲取sessionkey 和 openid的方法

php從入門到精通小程序如何實現登錄狀態

給各位看官列出來,加油吧,少年!


分享到:


相關文章: