在授權開發以後,需要提交小程式金鑰,有小程式金鑰第三方才有能力獲取使用者的一些資訊,提供一些能力!
1. 呼叫wx.login介面,靜默獲取openid
適用場景:無需使用使用者頭像、暱稱、unionid資訊
2. 使用open-data (小程式)或者開放資料域(小遊戲)的方式展示使用者資訊(無需使用者授權)
適用場景:需要在前端「展示」使用者頭像、暱稱資訊,但不需要獲取unionid
3.使用button(小程式)或userinfobutton(小遊戲)元件,使用者點選後彈窗請求使用者授權
適用場景:需要獲取使用者頭像、暱稱、unionid等基本資訊
開發建議
第一步:獲取openid
當使用者訪問小程式時,先通過wx.login,獲取使用者openid 。這時無需彈框授權,開發者拿到 openid 可以建立自身的帳號 id。
第二步: 使用open-data方式或開放資料域方式展示頭像暱稱
如需要在前端展示使用者頭像、暱稱資訊, 使用open-data 方式或者開放資料域的方式展示使用者資訊
第三步:根據實際使用場景,使用元件,引導使用者登入
在關鍵操作中,如必須獲取使用者頭像、暱稱、unionid資訊,可根據第一步獲取的openid判斷是新使用者還是舊使用者:
如果是舊使用者,可以直接登入,也可定期使用wx.getuserinfo更新使用者的資訊;
如果是新使用者,使用button(小程式)或userinfobutton(小遊戲)元件,在使用者點選後彈窗請求獲取使用者基本資訊。
unionid機制詳見這裡
wx.login 呼叫時,使用者的 session_key 可能會被更新而致使舊 session_key 失效(重新整理機制存在最短週期,如果同乙個使用者短時間內多次呼叫 wx.login,並非每次呼叫都導致 session_key 重新整理)。開發者應該在明確需要重新登入時才呼叫 wx.login,及時通過 code2session 介面更新伺服器儲存的 session_key。
開發者在 session_key 失效時,可以通過重新執行登入流程獲取有效的 session_key。使用介面 wx.checksession可以校驗 session_key 是否有效,從而避免小程式反覆執行登入流程。
當開發者在實現自定義登入態時,可以考慮以 session_key 有效期作為自身登入態有效期,也可以實現自定義的時效性策略。
如果使用自己伺服器定義的登入態失效時間,則不需要wx.checksession
小程式登入
注 1.自定義登入態 因為小程式沒有cookie,所以在此處自定義登入態 偽cookie 來識別使用者。cookie是為了更好的在伺服器儲存使用者資訊,保證使用者在小程式與伺服器傳輸資料的安全性。實現步驟 1.wx.login獲取使用者臨時登入憑證code。小程式開發文件 呼叫介面獲取登入憑證 co...
小程式登入流程
之前一直對小程式登入流程比較模糊,今天看了個文章 感覺清晰了很多,總結一下。首先,我們不應該直接獲取使用者資訊,目前好像也不能直接獲取使用者資訊。原則是 當我們需要獲取使用者資訊的時候才發起授權。1.wx.getuserinfo 這個函式 是需要授權才能獲取使用者資訊 2.那麼我們只能用button...
小程式彈出登入詢問
邏輯如下 1 第一次登陸的時候會有乙個登入按鈕遮罩浮層提示去授權登入 2 在彈出的授權框裡,拒絕授權按鈕的時候,介面的資料沒有辦法載入出來,允許授權的時候,介面就能渲染從後端拿過來的資料 3 判斷是否授過權 判斷是第一次登入還是第n次 如果使用者第一次已經登入授權,後面繼續登入的時候懸浮框就不會再出...